Currently some of the DSignal functionality that is not explicitly clocked is under the explicitly clocked subdirectories of clash-prelude. My understanding now is that the Explicit module hierarchy is for functions that take => Clock domain gated -> value parameters, but DSignal functions don't seem to always follow this.
For example
-
The Signal data type and constructor are under non-explicit hierarchy Clash/Signal/Internal.hs
-
But DSignal data type and constructor, and functions such as
feedback :: (DSignal domain n a -> (DSignal domain n a,DSignal domain (n + m + 1) a)) -> DSignal domain n a
unsafeFromSignal :: Signal domain a -> DSignal domain n a
etc, are under Clash/Explicit/Signal/Delayed.hs.
Is this unintentional and should these DSignal functions be under the non explicit hierarchy? I can start refactoring this around but wanted to confirm first before sending a pull request(s).
(Looking through Clash/Explicit/Signal.hs there are a couple of potentially misplaced functions simulateB and simulateB_lazy too)
Currently some of the DSignal functionality that is not explicitly clocked is under the explicitly clocked subdirectories of clash-prelude. My understanding now is that the
Explicitmodule hierarchy is for functions that take=> Clock domain gated ->value parameters, but DSignal functions don't seem to always follow this.For example
The Signal data type and constructor are under non-explicit hierarchy
Clash/Signal/Internal.hsBut DSignal data type and constructor, and functions such as
feedback :: (DSignal domain n a -> (DSignal domain n a,DSignal domain (n + m + 1) a)) -> DSignal domain n aunsafeFromSignal :: Signal domain a -> DSignal domain n aetc, are under
Clash/Explicit/Signal/Delayed.hs.Is this unintentional and should these DSignal functions be under the non explicit hierarchy? I can start refactoring this around but wanted to confirm first before sending a pull request(s).
(Looking through
Clash/Explicit/Signal.hsthere are a couple of potentially misplaced functionssimulateBandsimulateB_lazytoo)