Question

Let's consider state machines in VHDL that sit in some idle state until they're triggered to work for a while and end up in idle state again.

What is the better practice:

  • Include an IDLE signal to the outside world to signal "I can do stuff"
  • Include a BUSY signal to the outside world to signal "I can't do stuff right now"
Was it helpful?

Solution

I would recommend having a busy flag rather than an idle flag on interfaces between modules. This is the most common way to do it, and it is also marginally easier to interpret what "busy" means. Plus, most flow control signals go high rather than low to request a pause in the flow of data (full, empty, error, etc.), thus you could argue that having an "idle" or "ready" signal would be inconsistent.

That being said, this is like others have said not really important.

OTHER TIPS

The two are equivalent as one is just the inverse of the other.

Worry about other things.

IDLE is also often called READY. I don't think there is a "better" practise - just use what fits your situation best.

(Or have both and do IDLE <= not BUSY; )

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top