Hoogle Search

Within LTS Haskell 24.42 (ghc-9.10.3)

Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.

  1. data PrimitiveWarning

    clash-prelude Clash.Annotations.Primitive

    Warning that will be emitted on instantiating a guarded value.

  2. data PortName

    clash-prelude Clash.Annotations.TopEntity

    Give port names for arguments/results. Give a data type and function:

    data T = MkT Int Bool
    
    {-# ANN f (defSyn "f") #-}
    f :: Int -> T -> (T,Bool)
    f a b = ...
    
    Clash would normally generate the following VHDL entity:
    entity f is
    port(a      : in signed(63 downto 0);
    b_0    : in signed(63 downto 0);
    b_1    : in boolean;
    result : out std_logic_vector(65 downto 0));
    end;
    
    However, we can change this by using PortNames. So by:
    {-# ANN f
    (Synthesize
    { t_name   = "f"
    , t_inputs = [ PortName "a"
    , PortName "b" ]
    , t_output = PortName "res" }) #-}
    f :: Int -> T -> (T,Bool)
    f a b = ...
    
    we get:
    entity f is
    port(a   : in signed(63 downto 0);
    b   : in std_logic_vector(64 downto 0);
    res : out std_logic_vector(65 downto 0));
    end;
    
    If we want to name fields for tuples/records we have to use PortProduct
    {-# ANN f
    (Synthesize
    { t_name   = "f"
    , t_inputs = [ PortName "a"
    , PortProduct "" [ PortName "b", PortName "c" ] ]
    , t_output = PortProduct "res" [PortName "q"] }) #-}
    f :: Int -> T -> (T,Bool)
    f a b = ...
    
    So that we get:
    entity f is
    port(a     : in signed(63 downto 0);
    b     : in signed(63 downto 0);
    c     : in boolean;
    res_q : out std_logic_vector(64 downto 0);
    res_1 : out boolean);
    end;
    
    Notice how we didn't name the second field of the result, and the second output port got PortProduct name, "res", as a prefix for its name.

  3. PortName :: String -> PortName

    clash-prelude Clash.Annotations.TopEntity

    You want a port, with the given name, for the entire argument/type You can use an empty String ,"" , in case you want an auto-generated name.

  4. PortProduct :: String -> [PortName] -> PortName

    clash-prelude Clash.Annotations.TopEntity

    You want to assign ports to fields of a product argument/type The first argument of PortProduct is the name of:

    1. The signal/wire to which the individual ports are aggregated.
    2. The prefix for any unnamed ports below the PortProduct
    You can use an empty String ,"" , in case you want an auto-generated name.

  5. module Clash.Class.Parity

    No documentation available.

  6. class Parity a

    clash-prelude Clash.Class.Parity

    Determine whether value is odd or even

  7. module Clash.Explicit.Prelude

    This module defines the explicitly clocked counterparts of the functions defined in Clash.Prelude.

  8. PullDown :: BiSignalDefault

    clash-prelude Clash.Explicit.Signal

    inout port behaves as if connected to a pull-down resistor

  9. PullUp :: BiSignalDefault

    clash-prelude Clash.Explicit.Signal

    inout port behaves as if connected to a pull-up resistor

  10. PSL :: RenderAs

    clash-prelude Clash.Explicit.Verification

    Property Specification Language

Page 812 of many | Previous | Next