( ESNUG 282 Item 6 ) ------------------------------------------------ [2/26/98]

Subject: (ESNUG 278 #7 280 #4 281 #2)  Synch Resets Combined W/ Random Logic

>   process (clock, reset)
>    begin
>      If reset = '1' then
>        A <= '0';
>      elsif clock = '1' and clock'event then
>        A <= Input1;
>        B <= Input2;
>      endif;
>    end Process;
>
> If you elaborate the above without adding process-specific attributes
> or changing the default value, you will find design compiler DOES NOT 
> NECESSARILY recognize either a synchronous or async reset.  The reason
> is the code attempts to infer a synchronous reset, but the variable 
> precludes it.  ....
>
>  - Jeff Koehler
>    Cabletrons Systems        Littleton, Massachusetts


From: Ed Bender <bender@atitech.ca>

Sorry to nitpick but this code looks like it is attempting to infer an
asynchronous reset, not a synchronous reset.  If you want a synchronous
reset then 'reset' should NOT be in the sensitivity list:

  process (clock)
  begin
   If reset = '1' then
       A <= '0';
   elsif clock = '1' and clock'event then
       A <= Input1;
       B <= Input2;
   endif;
  end Process;

Regards,

  - Ed Bender
    ATI Technologies Inc



 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)