-
Notifications
You must be signed in to change notification settings - Fork 27
asyncRam' :: Enum addr => SClock wclk -> SClock rclk -> SNat n -> Signal' wclk (Maybe (addr, a)) -> Signal' rclk (addr -> a) #92
Comments
I assume another varient of |
What about adding a special operation on signal functions, so that current simple
Then you could write the following (with an extra flip because of unfortunate argument ordering):
|
@comonoidial, i dont think is is possible to write that function. curryS f = g :- gs
where
g = ???
gs = ??? |
Right this function can not exist, although the other way around is trivial. Even with other Signal representations it seems you can not enforce all the properties to allow for this function. |
I would prefer that myself. Essentially this means it returns time-varying combinational logic, i believe. |
@christiaanb: Could we have another term, say |
@strake: yes, that'll work. Will you write a patch? |
Yep, once i figure out how to do so ☺ |
and likewise
asyncRam
.The path from read address to output is combinational, which we can so encode in the type.
My use case is a register file where we have a
Signal (Either RegNum Word)
, either a register number or an immediate value, and we want aSignal Word
, either the value in that register or the immediate value. It is much more convenient and less heinous with the proposed type ofasyncRam
:versus
The text was updated successfully, but these errors were encountered: