Go Back   Velocity Reviews > Newsgroups > VHDL
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

VHDL - Strange behaviour when synthesising with Quartus

 
Thread Tools Search this Thread
Old 11-02-2006, 12:04 PM   #1
Default Strange behaviour when synthesising with Quartus


Hi all,
We had some strange behaviour with our project today. We have been
using Mentor Graphics HDL Maker, ModelSim and Quartus for our
university project. The code simulated fine in ModelSim, everything was
perfect. However when synthesised onto the Flex10k device we had
everything worked fine except for one signal. We revised our code and
retried various approaches all with the same result. Next we combed
through the output of the synthesiser to try and find any relevant
errors. We had a simple slow speed project so most of the errors were
from timing violations.
As a last approach, which should probably have been a first approach,
we took all of the signals to output pins on the device so we could
observe their state. With that simple change in HDLMaker, just adding
three more output ports and wiring them up to the existing signals
between modules the difficult signal started working.
I assume this is something to do with optimisation in the synthesiser.
But I don't think it should have done it.
Has this happened to anyone else?
What can I do to prevent it happening again? Is it because of bad
coding style?
What errors or warnings does Quartus give when it's done something like
this?
Try to take it easy on me, I am a university student but this is for my
own knowledge not any homework question
Thanks
Joel



joel.pigdon@gmail.com
  Reply With Quote
Old 11-02-2006, 12:10 PM   #2
joel.pigdon@gmail.com
 
Posts: n/a
Default Re: Strange behaviour when synthesising with Quartus
Sorry this should have been posted to comp.arch.fpga, which it now has
been.
everyone is still invited to comment,
sorry about the crosspost.
Joel

joel.pig...@gmail.com wrote:
> Hi all,
> We had some strange behaviour with our project today. We have been
> using Mentor Graphics HDL Maker, ModelSim and Quartus for our
> university project. The code simulated fine in ModelSim, everything was
> perfect. However when synthesised onto the Flex10k device we had
> everything worked fine except for one signal. We revised our code and
> retried various approaches all with the same result. Next we combed
> through the output of the synthesiser to try and find any relevant
> errors. We had a simple slow speed project so most of the errors were
> from timing violations.
> As a last approach, which should probably have been a first approach,
> we took all of the signals to output pins on the device so we could
> observe their state. With that simple change in HDLMaker, just adding
> three more output ports and wiring them up to the existing signals
> between modules the difficult signal started working.
> I assume this is something to do with optimisation in the synthesiser.
> But I don't think it should have done it.
> Has this happened to anyone else?
> What can I do to prevent it happening again? Is it because of bad
> coding style?
> What errors or warnings does Quartus give when it's done something like
> this?
> Try to take it easy on me, I am a university student but this is for my
> own knowledge not any homework question
> Thanks
> Joel




joel.pigdon@gmail.com
  Reply With Quote
Old 11-02-2006, 12:26 PM   #3
KJ
 
Posts: n/a
Default Re: Strange behaviour when synthesising with Quartus

<> wrote in message
news: ups.com...
> Hi all,
> We had some strange behaviour with our project today. We have been
> using Mentor Graphics HDL Maker, ModelSim and Quartus for our
> university project. The code simulated fine in ModelSim, everything was
> perfect. However when synthesised onto the Flex10k device we had
> everything worked fine except for one signal. We revised our code and
> retried various approaches all with the same result.

I would've taken that one errant signal and ascertained under just what
conditions it could be 'wrong' and then bactracked to the source. Changing
a 'broken' design without knowledge of what is fundamentally broken is not a
good debug approach.

> Next we combed
> through the output of the synthesiser to try and find any relevant
> errors. We had a simple slow speed project so most of the errors were
> from timing violations.

Slow speed and yet you say had timing violations.....note, timing violations
are design errors that indicate the design will not always (maybe never)
work properly.

> As a last approach, which should probably have been a first approach,
> we took all of the signals to output pins on the device so we could
> observe their state.

First approach should have been static timing analysis.

> With that simple change in HDLMaker, just adding
> three more output ports and wiring them up to the existing signals
> between modules the difficult signal started working.
> I assume this is something to do with optimisation in the synthesiser.
> But I don't think it should have done it.

The timing changed which is the reason it appears to 'work'. Now you've
made it worse though. You 'think' you've fixed it but you haven't (hence
your question here because of the nagging feeling) so now you have a design
with a latent design error and you no longer have a 'broken' system to
debug. I'd suggest going back to the original code that had the problem,
since that had the demonstratable error.

> Has this happened to anyone else?

Can happen to anyone who happens to debug a design that has a timing
violation that also didn't perform static timing analysis on as well.

> What can I do to prevent it happening again?

Perform static timing analysis.

> Is it because of bad
> coding style?

Doubtful.

> What errors or warnings does Quartus give when it's done something like
> this?

Fails the static timing analysis.

> Try to take it easy on me, I am a university student but this is for my
> own knowledge not any homework question

OK, then take the repetition about performing static timing analysis as the
well intentioned advice that it is. Good luck

KJ




KJ
  Reply With Quote
Old 11-02-2006, 01:58 PM   #4
KJ
 
Posts: n/a
Default Re: Strange behaviour when synthesising with Quartus
In addition to timing, also look at the synthesis log and inspect any
warnings and understand what they are all about since synthesis
'warnings' are usually run time 'errors'. Some things that it will
warn about are:
- Combinatorial latches (get rid of them, they are a likely source for
timing problems).
- Incomplete sensitivity lists (add the missing signals and recheck to
see if your sim still works. If it still works the same way then this
was not the problem. If it works differently AND matches what the
actual board is doing, then you're home free. Debug the problem in the
simulator, rebuild and retest).

These types of things I guess could be considered 'coding style' types
of things since those who write code using unclocked processes tend to
have these problems at some point whereas those who only use clocked
processes and very few (if any) unclocked ones tend to not have these
problems.

KJ



KJ
  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
DVD Verdict reviews: THE STRANGE VICE OF MRS. WARDH and more! DVD Verdict DVD Video 0 07-01-2005 09:11 AM
Strange DVD Diagnostic Problem... Jack DVD Video 11 12-19-2004 02:43 PM




SEO by vBSEO 3.3.2 ©2009, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46