Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does the synthesizer care about one or two processes?

Tags:

vhdl

synthesis

There are two popular ways of coding a state machine in VHDL: one process or two processes. There are rumors (and it is taught in some colleges) that two processes might result in better hardware. Does anybody have any hard evidence for this? My own preliminary tests show that there is no difference at all.

I'm looking for reproducible experiments: VHDL code for the two coding styles, and specifics on how to synthesize them (which tool, which parameters).

Please help me to either debunk or confirm the myth that two processes result in better synthesized hardware.

like image 869
Philippe Avatar asked Oct 25 '11 09:10

Philippe


People also ask

How does the synthesizer work?

Synthesizers don't physically create those vibrations with hammers or anything like that. Instead, an electrical signal passes through a signal path to an amplifier. The amplifier then sends the signal through a speaker to create vibrations in the air that we hear as sound.

What are the two types of synthesizers?

In many people's minds, synthesizers can be divided into two categories: analog and digital.

What is the disadvantage of synthesizer?

The biggest disadvantage of software synths is that you need a computer to use them. This is a disadvantage for a few reasons. First of all, your computer will become outdated over time. This is because software is continuously developed to the specifications of both the latest and most available computer components.

What is the purpose of a synthesizer?

Synthesizers are used for the composition of electronic music and in live performance. The intricate apparatus of the sound synthesizer generates wave forms and then subjects them to alteration in intensity, duration, frequency, and timbre, as selected by the composer or musician.


2 Answers

A lot of this kind of "knowledge" is based on the tools that were around 20 years ago. Things have moved on.

That's not to say that it's everything has been fixed in all cases, but you're doing the right thing by actually performing trials.

Other things which have been avoided in the past are:

  • Generics, because apparently they're unsynthesizable. Not true, and far better than
    pre-processing code, which is the normally what's being defended.
  • Records on ports. This did cause DC-shell problems for a long time. It would misconnect things. I don't know if this is solved.
  • Various styles of synchronous process, especially those using wait rather than the sensitivity list. This one is particularly crazy because if you read the VHDL spec it says the two are equivalent and should be implemented in the same way.
like image 200
Paul S Avatar answered Sep 21 '22 05:09

Paul S


Sorry, no reproducible experiment, but I'd be staggered if a synthesizer cared (at least these days - I have no hard evidence though)! Surely it just parses the VHDL down to a bunch of logic feeding a bunch of flipflops.

I don't even know if it used to be a problem with old-fashioned synthesizers or whether people just assumed it to be so!

like image 45
Martin Thompson Avatar answered Sep 21 '22 05:09

Martin Thompson