[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ALTs on inputs and outputs



>From Barry:

> HOWEVER, having said that I find I have a need for output guards in an ALT
> driving input guards in another ALT for a network routing switch design.
> So, I WILL be providing them in my occam to hardware compiler.

The direction of channels arises in a more extreme form if one tries to
use (H)CSP to describe general hardware. Suppose that one could extend
(H)CSP to describe continuous and thus analogue circuits. And that it
was possible to capture the behaviour of basic circuit elements like
capacitors, inductors and resistors.

Consider a circuit consisting of a (initially charged) capacitor in
parallel with a resistor. And the connection modelled as a "channel" or
"channels" on which charge and potential is "exchanged". Then it is not
immediately obvious which is the source and which the sink. I grant that
in *this* particular case, you might have a strong intuition that the
capacitor stores energy and might thus be the source. But change to an
inductor and capacitor in parallel oscillating: then it is hard to
assign a permanent "direction" for the exchange of
data/information/energy.   

Fortunately (H)CSP can cope with all of that, partly by using "ports"
(in the sense of Bernard Sufrins's ECSP and David May's Icarus and
others..) - which hardware types will note maps pretty well directly
onto the "ports" of standard circuit analysis. Together with the HCSP
\merge algebra.
And we need ports for mobile processes as well, of course.

So in general output guards, or perhaps guards without specifying a
direction at all, are needed.

Adrian
-- 
Dr A E Lawrence (from home)