( Post 53 Item # 1 ) ---------------------------------------------------

From: Trevor <lupine!trevor@uunet.UU.NET>

Reply to Post 52 Item #1:


I have been using VHDL with Synopsys for some months
and have the following input ...

1) The FSM compiler is good for squeezing the last ounce
   of speed or area from the synthesis tool. It seems to
   produce good state assignments but its rather involved
   to get it all to work right. The golden rule I learned
   the hard way is to isolate the state machine from the
   rest of the design (The "group -fsm" didn't work very
   well when I tried it) and pass only the inputs and
   outputs needed to the state machine module (ie: Do not
   pass inputs which may not get used as the tool will
   try crunching on them anyhow.

   I had a design where I brought a complex record with
   500 signals into the state machine but only 20 or so
   were actually used. The state machine compiler tried
   to compile a state machine with more than 500
   inputs. Since the input PLA has 2 ^ 500 combinations
   it had not finished after 10 days. I learned all this
   from a Synopsys FAE who had just come here from Europe
   and had seem similar things over there. He told me
   (unofficially, of course) that the fsm compiler on
   a computer like a 40MHz SPARC is good for around
   30 inputs, 30 states and 30 outputs. I believe it is
   wise not to push it.

   The step you refer to is currently a work around for
   some problem with the tool. It is currently required
   to get the design mapped to gates before running the
   state machine compiler.

2) The obvious answer is, of course, yes there are subtle
   points to writing these descriptions ...
   but isn't there always with these kind of tools? :-)

3) I use mvl logic for all my design and I defined a subtype
   mvl of mvl7. This means all that has to be done to change
   to a different logic type is to change the subtype
   definitions.

4) If you are hoping to make the synthesis completely
   transparent to the models, I think you are expecting
   too much at this stage of the tools' development. You
   will need to constantly consider what the synthsis tool
   is going to produce from your code. You will need a
   liberal sprinkling of conditional compilation statements
   because the synthesis is a subset of the standard and
   some VHDL statements don't make sense to synthesis. It
   seems to me that I design to the synthesis tool, not
   to the simulator.

5) The one that caught me was putting an assert statement
   in the others => of a case statement by itself. The
   synthesis tool does not support assert statements so it
   ignored it and that meant there was nothing in that part
   of the case statement. To correct, the tool built a weird
   sort of latch which took a while to find. The only
   indication was that there were timing loops when it
   optimized.

   There are of course numerous other funnies.

-- Trevor

Trevor Pearman
Network Computing Devices	trevor@ncd.com



 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)