On 10/01/2011 21:00, Brad Pierce wrote:
> That reminds me of a question I had reading pages 19 and 21 of
> Jonathan's presentation at http://bit.ly/eipdSE . Why is the interface
> decomposed into interfaces and a module, instead of interfaces and
> another interface? Is there something in the "bus fabric module" that
> is prohibited in an interface? Is it intuitively more module-like than
> interface-like?
Brad,
There are probably some good reasons and many bad ones.
The first and probably strongest reason is my understanding (almost
certainly now overtaken by events, and probably never completely true)
that interfaces could be synthesized only when instantiated in a module,
and used to connect one module instance to another. From hearsay I
understood that mainstream synthesis tools synthesize interfaces by
flattening (exploding) their contents into their enclosing module, as
illustrated on pages 15-17 of that same presentation, and that
understanding was borne out by my own observations. So I chose not to
tread too close to the cliff edge, and kept the usage of interfaces as
simple as possible.
The second reason is the one you allude to: unhappy early experience
with interface synthesis led me to a general sense that functionality
should go in modules, and interfaces should be reserved for
connectivity. That is certainly not 100% true today. And, of course,
it was never true for non-synthesis uses of interfaces.
Finally, although this wasn't in my mind at the time, it should be
pointed out that the bus fabric might be quite complicated, and might
include instances of pre-existing modules. You can't do that in an
interface. Any design elements instanced in it would need to be
interfaces themselves.
Jonathan
-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Mon Jan 10 13:37:19 2011
This archive was generated by hypermail 2.1.8 : Mon Jan 10 2011 - 13:37:30 PST