{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
module Clash.Intel.DDR
( altddioIn
, altddioOut
)
where
import GHC.Stack (HasCallStack, withFrozenCallStack)
import Clash.Explicit.Prelude
import Clash.Explicit.DDR
altddioIn
:: ( HasCallStack
, fast ~ 'Dom n pFast
, slow ~ 'Dom n (2*pFast)
, KnownNat m )
=> SSymbol deviceFamily
-> Clock slow gated
-> Reset slow synchronous
-> Signal fast (BitVector m)
-> Signal slow (BitVector m,BitVector m)
altddioIn _devFam clk rst = withFrozenCallStack ddrIn# clk rst 0 0 0
{-# NOINLINE altddioIn #-}
altddioOut
:: ( HasCallStack
, fast ~ 'Dom n pFast
, slow ~ 'Dom n (2*pFast)
, KnownNat m )
=> SSymbol deviceFamily
-> Clock slow gated
-> Reset slow synchronous
-> Signal slow (BitVector m,BitVector m)
-> Signal fast (BitVector m)
altddioOut devFam clk rst =
uncurry (withFrozenCallStack altddioOut# devFam clk rst) . unbundle
altddioOut#
:: ( HasCallStack
, fast ~ 'Dom n pFast
, slow ~ 'Dom n (2*pFast)
, KnownNat m )
=> SSymbol deviceFamily
-> Clock slow gated
-> Reset slow synchronous
-> Signal slow (BitVector m)
-> Signal slow (BitVector m)
-> Signal fast (BitVector m)
altddioOut# _ clk rst = ddrOut# clk rst 0
{-# NOINLINE altddioOut# #-}