Forum Discussion
Altera_Forum
Honored Contributor
17 years agoYes, this is the way Quartus behaves. When you declare a modport with an output, that modport output is considered to be a driver of the interface signal, even if that modport is never instantiated.
I am not sure whether this is a bug or legal behaviour, but either way, it stinks. Only one modport may be declared with an output for a given signal, and then that modport MUST be used to drive that signal. If the modport is never instantiated, and the signal is driven by direct assignment to the interface net instead, then Quartus complains about multiple drivers. I have found no workaround for this, other than to design your interfaces with this in mind. This can be somewhat difficult though, as the interface is then required to know something about the hierarchy structure in which it is used. Like i said, it stinks.