combinationel loop

Discussion in 'VHDL' started by fpga.vhdl.designer@gmail.com, Oct 11, 2007.

  1. Guest

    hi,

    i wrote this
    FROZE_LAMBDA : process(clock,frozen,lambda_PE)
    variable flag : std_logic;
    begin
    if frozen='0' then
    flag := '0';
    lambda_in <= lambda_PE;
    elsif (clock'event and clock='1') then
    if data_en='1' then
    if flag = '0' then
    lambda_in <= lambda_PE;
    flag := '1';
    end if;
    end if;
    end if;
    end process FROZE_LAMBDA;

    I've got this message from Quartus 6.0 timing analyser..
    Warning: Timing Analysis is analyzing one or more combinational loops
    as latches on lambda_in

    I want lambda_in taken the value on frozen='0' and (data_en=1 and
    flag='0') and to be frozen for others cases...

    I don't have the warning under Cyclone I and now on Cyclone II I've
    got this new warning

    how to get out this warning ?

    thanks
    , Oct 11, 2007
    #1
    1. Advertising

  2. Guest

    and I have too the frozen signal detected as :
    Warning: Found 1 node(s) in clock paths which may be acting as ripple
    and/or gated clocks -- node(s) analyzed as buffer(s) resulting in
    clock skew, frozen as buffer !!!

    my frozen signal is a register ouptut !!

    why quartus see it as as a clock, I use it only in the process above
    where frozen is a asynchronous reset !!
    , Oct 11, 2007
    #2
    1. Advertising

  3. Guest

    I have found myself... with syncrhounous reset.. and the design works
    always...

    if (clock'event and clock='1') then
    if frozen='0' then
    lambda_in <= lambda_PE;
    flag := '0';
    elsif data_en='1' then
    if flag='0' then
    lambda_in <= lambda_PE;
    flag := '1';
    end if;
    end if;
    end if;
    , Oct 11, 2007
    #3
  4. scottcarl

    Joined:
    May 4, 2007
    Messages:
    49
    Location:
    USA
    fvd@g,

    Define lambda_in <= '0' or '1' in the reset state, not to another signal.

    Scott
    scottcarl, Oct 11, 2007
    #4
  5. Jan Zegers Guest

    On Thu, 11 Oct 2007 06:42:13 -0700, fpga.vhdl.designer wrote:

    > hi,
    >
    > i wrote this
    > FROZE_LAMBDA : process(clock,frozen,lambda_PE)
    > variable flag : std_logic;
    > begin
    > if frozen='0' then
    > flag := '0';
    > lambda_in <= lambda_PE;
    > elsif (clock'event and clock='1') then
    > if data_en='1' then
    > if flag = '0' then
    > lambda_in <= lambda_PE;
    > flag := '1';
    > end if;
    > end if;
    > end if;
    > end process FROZE_LAMBDA;
    >
    > I've got this message from Quartus 6.0 timing analyser..
    > Warning: Timing Analysis is analyzing one or more combinational loops
    > as latches on lambda_in
    >
    > I want lambda_in taken the value on frozen='0' and (data_en=1 and
    > flag='0') and to be frozen for others cases...
    >
    > I don't have the warning under Cyclone I and now on Cyclone II I've
    > got this new warning
    >
    > how to get out this warning ?
    >
    > thanks


    I believe the problem could come from the async reset
    using a value lambda_PE instead of a constant. Since
    we don't see the complete code, we can't be sure.

    Could you try to async reset lambda_in to '0' e.g.
    and test it again?

    Kind regards,
    Jan
    --
    Jan Zegers === Easics NV
    Director === Gaston Geenslaan, 9
    Tel:+32-476-915889 Fax:+32-16-395619 === B-3001 Leuven, BELGIUM
    mailto: http://www.easics.com
    Jan Zegers, Oct 11, 2007
    #5
  6. Guest

    yes effectively if I let the asynchronous reset and put 0 in lamda_in

    all the warnings disapear and I have a correct Fmax espected...
    , Oct 12, 2007
    #6
  7. Guest

    if frozen='0' then
    flag := '0';
    for I in 0 to (NB_BLOCS/2) loop
    lambda_in_1(I) <= (others=>'0');
    end loop;
    elsif rising_edge (clock) then
    if data_en='1' then
    if flag='0' then
    lambda_in_1 <= lambda_PE;
    flag := '1';
    end if;
    end if;
    end if;
    end process FROZE_LAMBDA;

    with frozen select
    lambda_in <=
    lambda_PE when '0',
    lambda_in_1 when '1',
    lambda_PE when others;

    this version works perfectly and have the good Fmax

    thanks... to your help
    , Oct 12, 2007
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?VGltOjouLg==?=

    Loop the loop...

    =?Utf-8?B?VGltOjouLg==?=, Feb 16, 2005, in forum: ASP .Net
    Replies:
    2
    Views:
    1,371
    Karl Seguin
    Feb 16, 2005
  2. Steven

    while loop in a while loop

    Steven, Mar 24, 2005, in forum: Java
    Replies:
    5
    Views:
    2,218
    Tim Slattery
    Mar 30, 2005
  3. -
    Replies:
    12
    Views:
    678
    Remon van Vliet
    Jun 15, 2005
  4. Byte
    Replies:
    4
    Views:
    406
  5. Isaac Won
    Replies:
    9
    Views:
    354
    Ulrich Eckhardt
    Mar 4, 2013
Loading...

Share This Page