clash-protocols
Safe HaskellNone
LanguageGHC2021

Protocols.Experimental.Simulate

Description

Experimental protocol-agnostic simulation support.

This module contains the generic simulation classes and helpers that used to be part of the default Protocols import surface. New tests should prefer protocol-specific drivers and checkers over adding more assumptions here.

Synopsis

Documentation

class Protocol a => Backpressure a where Source #

Conversion from booleans to protocol specific acknowledgement values.

Methods

boolsToBwd :: Proxy a -> [Bool] -> Bwd a Source #

Interpret list of booleans as a list of acknowledgements at every cycle. Implementations don't have to account for finite lists.

Instances

Instances details
Backpressure () Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy () -> [Bool] -> Bwd () Source #

(KnownNat n, Backpressure a) => Backpressure (Vec n a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (Vec n a) -> [Bool] -> Bwd (Vec n a) Source #

Backpressure (Df dom a) Source # 
Instance details

Defined in Protocols.Experimental.Df

Methods

boolsToBwd :: Proxy (Df dom a) -> [Bool] -> Bwd (Df dom a) Source #

KnownManagerConfig config => Backpressure (AvalonMmManager dom config) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

Methods

boolsToBwd :: Proxy (AvalonMmManager dom config) -> [Bool] -> Bwd (AvalonMmManager dom config) Source #

Backpressure (CSignal dom a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (CSignal dom a) -> [Bool] -> Bwd (CSignal dom a) Source #

(Backpressure a, Backpressure b) => Backpressure (a, b) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (a, b) -> [Bool] -> Bwd (a, b) Source #

(KnownSubordinateConfig config, KeepWaitRequest config ~ 'True) => Backpressure (AvalonMmSubordinate dom 0 config) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

Methods

boolsToBwd :: Proxy (AvalonMmSubordinate dom 0 config) -> [Bool] -> Bwd (AvalonMmSubordinate dom 0 config) Source #

ReadyLatency conf ~ 0 => Backpressure (AvalonStream dom conf dataType) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.Stream

Methods

boolsToBwd :: Proxy (AvalonStream dom conf dataType) -> [Bool] -> Bwd (AvalonStream dom conf dataType) Source #

Backpressure (Axi4ReadAddress dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.ReadAddress

Methods

boolsToBwd :: Proxy (Axi4ReadAddress dom conf userType) -> [Bool] -> Bwd (Axi4ReadAddress dom conf userType) Source #

Backpressure (Axi4Stream dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.Stream

Methods

boolsToBwd :: Proxy (Axi4Stream dom conf userType) -> [Bool] -> Bwd (Axi4Stream dom conf userType) Source #

Backpressure (Axi4WriteAddress dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteAddress

Methods

boolsToBwd :: Proxy (Axi4WriteAddress dom conf userType) -> [Bool] -> Bwd (Axi4WriteAddress dom conf userType) Source #

Backpressure (Axi4WriteData dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

Methods

boolsToBwd :: Proxy (Axi4WriteData dom conf userType) -> [Bool] -> Bwd (Axi4WriteData dom conf userType) Source #

Backpressure (Axi4WriteResponse dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

Methods

boolsToBwd :: Proxy (Axi4WriteResponse dom conf userType) -> [Bool] -> Bwd (Axi4WriteResponse dom conf userType) Source #

Backpressure (PacketStream dom dataWidth meta) Source # 
Instance details

Defined in Protocols.Experimental.PacketStream

Methods

boolsToBwd :: Proxy (PacketStream dom dataWidth meta) -> [Bool] -> Bwd (PacketStream dom dataWidth meta) Source #

(Backpressure c1, Backpressure c2, Backpressure c3) => Backpressure (c1, c2, c3) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (c1, c2, c3) -> [Bool] -> Bwd (c1, c2, c3) Source #

Backpressure (Axi4ReadData dom conf userType dataType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.ReadData

Methods

boolsToBwd :: Proxy (Axi4ReadData dom conf userType dataType) -> [Bool] -> Bwd (Axi4ReadData dom conf userType dataType) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4) => Backpressure (c1, c2, c3, c4) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4) -> [Bool] -> Bwd (c1, c2, c3, c4) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5) => Backpressure (c1, c2, c3, c4, c5) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5) -> [Bool] -> Bwd (c1, c2, c3, c4, c5) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6) => Backpressure (c1, c2, c3, c4, c5, c6) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7) => Backpressure (c1, c2, c3, c4, c5, c6, c7) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7, Backpressure c8) => Backpressure (c1, c2, c3, c4, c5, c6, c7, c8) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7, Backpressure c8, Backpressure c9) => Backpressure (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7, Backpressure c8, Backpressure c9, Backpressure c10) => Backpressure (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7, Backpressure c8, Backpressure c9, Backpressure c10, Backpressure c11) => Backpressure (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7, Backpressure c8, Backpressure c9, Backpressure c10, Backpressure c11, Backpressure c12) => Backpressure (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

class (KnownNat (SimulateChannels a), Backpressure a, Simulate a) => Drivable a where Source #

Class that defines how to drive, sample, and stall a Circuit of some shape. The Backpressure instance requires that the backward type of the circuit can be generated from a list of Booleans.

Associated Types

type ExpectType a Source #

Similar to SimulateFwdType, but without backpressure information. For example:

>>> :kind! (forall dom a. ExpectType (Df dom a))
...
= [a]

Useful in situations where you only care about the "pure functionality" of a circuit, not its timing information. Leveraged by various functions in Protocols.Experimental.Hedgehog and simulateCS.

Methods

toSimulateType Source #

Arguments

:: Proxy a

Type witness

-> ExpectType a

Expect type: input for a protocol without stall information

-> SimulateFwdType a

Expect type: input for a protocol with stall information

Convert a ExpectType a, a type representing data without backpressure, into a type that does, SimulateFwdType a.

fromSimulateType Source #

Arguments

:: Proxy a

Type witness

-> SimulateFwdType a

Expect type: input for a protocol with stall information

-> ExpectType a

Expect type: input for a protocol without stall information

Convert a ExpectType a, a type representing data without backpressure, into a type that does, SimulateFwdType a.

driveC :: SimulationConfig -> SimulateFwdType a -> Circuit () a Source #

Create a driving circuit. Can be used in combination with sampleC to simulate a circuit. Related: simulateC.

sampleC :: SimulationConfig -> Circuit () a -> SimulateFwdType a Source #

Sample a circuit that is trivially drivable. Use driveC to create such a circuit. Related: simulateC.

Instances

Instances details
Drivable () Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType () 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType () = ()
(KnownNat n, Drivable a) => Drivable (Vec n a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (Vec n a) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (Vec n a) = Vec n (ExpectType a)
(KnownDomain dom, NFDataX a, ShowX a, Show a) => Drivable (Df dom a) Source # 
Instance details

Defined in Protocols.Experimental.Df

Associated Types

type ExpectType (Df dom a) 
Instance details

Defined in Protocols.Experimental.Df

type ExpectType (Df dom a) = [a]

Methods

toSimulateType :: Proxy (Df dom a) -> ExpectType (Df dom a) -> SimulateFwdType (Df dom a) Source #

fromSimulateType :: Proxy (Df dom a) -> SimulateFwdType (Df dom a) -> ExpectType (Df dom a) Source #

driveC :: SimulationConfig -> SimulateFwdType (Df dom a) -> Circuit () (Df dom a) Source #

sampleC :: SimulationConfig -> Circuit () (Df dom a) -> SimulateFwdType (Df dom a) Source #

(NFDataX a, ShowX a, Show a, KnownDomain dom) => Drivable (CSignal dom a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (CSignal dom a) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (CSignal dom a) = [a]
(Drivable a, Drivable b) => Drivable (a, b) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (a, b) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (a, b) = (ExpectType a, ExpectType b)

Methods

toSimulateType :: Proxy (a, b) -> ExpectType (a, b) -> SimulateFwdType (a, b) Source #

fromSimulateType :: Proxy (a, b) -> SimulateFwdType (a, b) -> ExpectType (a, b) Source #

driveC :: SimulationConfig -> SimulateFwdType (a, b) -> Circuit () (a, b) Source #

sampleC :: SimulationConfig -> Circuit () (a, b) -> SimulateFwdType (a, b) Source #

(ReadyLatency conf ~ 0, KnownAvalonStreamConfig conf, NFDataX dataType, KnownDomain dom) => Drivable (AvalonStream dom conf dataType) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.Stream

Associated Types

type ExpectType (AvalonStream dom conf dataType) 
Instance details

Defined in Protocols.Experimental.Avalon.Stream

type ExpectType (AvalonStream dom conf dataType) = [AvalonStreamM2S conf dataType]

Methods

toSimulateType :: Proxy (AvalonStream dom conf dataType) -> ExpectType (AvalonStream dom conf dataType) -> SimulateFwdType (AvalonStream dom conf dataType) Source #

fromSimulateType :: Proxy (AvalonStream dom conf dataType) -> SimulateFwdType (AvalonStream dom conf dataType) -> ExpectType (AvalonStream dom conf dataType) Source #

driveC :: SimulationConfig -> SimulateFwdType (AvalonStream dom conf dataType) -> Circuit () (AvalonStream dom conf dataType) Source #

sampleC :: SimulationConfig -> Circuit () (AvalonStream dom conf dataType) -> SimulateFwdType (AvalonStream dom conf dataType) Source #

(KnownAxi4StreamConfig conf, NFDataX userType, KnownDomain dom) => Drivable (Axi4Stream dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.Stream

Associated Types

type ExpectType (Axi4Stream dom conf userType) 
Instance details

Defined in Protocols.Experimental.Axi4.Stream

type ExpectType (Axi4Stream dom conf userType) = [Axi4StreamM2S conf userType]

Methods

toSimulateType :: Proxy (Axi4Stream dom conf userType) -> ExpectType (Axi4Stream dom conf userType) -> SimulateFwdType (Axi4Stream dom conf userType) Source #

fromSimulateType :: Proxy (Axi4Stream dom conf userType) -> SimulateFwdType (Axi4Stream dom conf userType) -> ExpectType (Axi4Stream dom conf userType) Source #

driveC :: SimulationConfig -> SimulateFwdType (Axi4Stream dom conf userType) -> Circuit () (Axi4Stream dom conf userType) Source #

sampleC :: SimulationConfig -> Circuit () (Axi4Stream dom conf userType) -> SimulateFwdType (Axi4Stream dom conf userType) Source #

KnownDomain dom => Drivable (PacketStream dom dataWidth meta) Source # 
Instance details

Defined in Protocols.Experimental.PacketStream

Associated Types

type ExpectType (PacketStream dom dataWidth meta) 
Instance details

Defined in Protocols.Experimental.PacketStream

type ExpectType (PacketStream dom dataWidth meta) = [PacketStreamM2S dataWidth meta]

Methods

toSimulateType :: Proxy (PacketStream dom dataWidth meta) -> ExpectType (PacketStream dom dataWidth meta) -> SimulateFwdType (PacketStream dom dataWidth meta) Source #

fromSimulateType :: Proxy (PacketStream dom dataWidth meta) -> SimulateFwdType (PacketStream dom dataWidth meta) -> ExpectType (PacketStream dom dataWidth meta) Source #

driveC :: SimulationConfig -> SimulateFwdType (PacketStream dom dataWidth meta) -> Circuit () (PacketStream dom dataWidth meta) Source #

sampleC :: SimulationConfig -> Circuit () (PacketStream dom dataWidth meta) -> SimulateFwdType (PacketStream dom dataWidth meta) Source #

(Drivable c1, Drivable c2, Drivable c3) => Drivable (c1, c2, c3) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (c1, c2, c3) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3) = (ExpectType c1, ExpectType c2, ExpectType c3)

Methods

toSimulateType :: Proxy (c1, c2, c3) -> ExpectType (c1, c2, c3) -> SimulateFwdType (c1, c2, c3) Source #

fromSimulateType :: Proxy (c1, c2, c3) -> SimulateFwdType (c1, c2, c3) -> ExpectType (c1, c2, c3) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3) -> Circuit () (c1, c2, c3) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3) -> SimulateFwdType (c1, c2, c3) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4) => Drivable (c1, c2, c3, c4) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (c1, c2, c3, c4) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4) -> ExpectType (c1, c2, c3, c4) -> SimulateFwdType (c1, c2, c3, c4) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4) -> SimulateFwdType (c1, c2, c3, c4) -> ExpectType (c1, c2, c3, c4) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4) -> Circuit () (c1, c2, c3, c4) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4) -> SimulateFwdType (c1, c2, c3, c4) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5) => Drivable (c1, c2, c3, c4, c5) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (c1, c2, c3, c4, c5) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5) -> ExpectType (c1, c2, c3, c4, c5) -> SimulateFwdType (c1, c2, c3, c4, c5) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5) -> SimulateFwdType (c1, c2, c3, c4, c5) -> ExpectType (c1, c2, c3, c4, c5) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5) -> Circuit () (c1, c2, c3, c4, c5) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5) -> SimulateFwdType (c1, c2, c3, c4, c5) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6) => Drivable (c1, c2, c3, c4, c5, c6) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6) -> ExpectType (c1, c2, c3, c4, c5, c6) -> SimulateFwdType (c1, c2, c3, c4, c5, c6) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6) -> SimulateFwdType (c1, c2, c3, c4, c5, c6) -> ExpectType (c1, c2, c3, c4, c5, c6) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6) -> Circuit () (c1, c2, c3, c4, c5, c6) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6) -> SimulateFwdType (c1, c2, c3, c4, c5, c6) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7) => Drivable (c1, c2, c3, c4, c5, c6, c7) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> ExpectType (c1, c2, c3, c4, c5, c6, c7) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) -> ExpectType (c1, c2, c3, c4, c5, c6, c7) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) -> Circuit () (c1, c2, c3, c4, c5, c6, c7) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7, Drivable c8) => Drivable (c1, c2, c3, c4, c5, c6, c7, c8) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7, Drivable c8, Drivable c9) => Drivable (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7, Drivable c8, Drivable c9, Drivable c10) => Drivable (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9, ExpectType c10)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7, Drivable c8, Drivable c9, Drivable c10, Drivable c11) => Drivable (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9, ExpectType c10, ExpectType c11)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7, Drivable c8, Drivable c9, Drivable c10, Drivable c11, Drivable c12) => Drivable (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9, ExpectType c10, ExpectType c11, ExpectType c12)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

type family ExpectType a Source #

Similar to SimulateFwdType, but without backpressure information. For example:

>>> :kind! (forall dom a. ExpectType (Df dom a))
...
= [a]

Useful in situations where you only care about the "pure functionality" of a circuit, not its timing information. Leveraged by various functions in Protocols.Experimental.Hedgehog and simulateCS.

Instances

Instances details
type ExpectType () Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType () = ()
type ExpectType (Vec n a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (Vec n a) = Vec n (ExpectType a)
type ExpectType (Df dom a) Source # 
Instance details

Defined in Protocols.Experimental.Df

type ExpectType (Df dom a) = [a]
type ExpectType (CSignal dom a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (CSignal dom a) = [a]
type ExpectType (a, b) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (a, b) = (ExpectType a, ExpectType b)
type ExpectType (AvalonStream dom conf dataType) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.Stream

type ExpectType (AvalonStream dom conf dataType) = [AvalonStreamM2S conf dataType]
type ExpectType (Axi4Stream dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.Stream

type ExpectType (Axi4Stream dom conf userType) = [Axi4StreamM2S conf userType]
type ExpectType (PacketStream dom dataWidth meta) Source # 
Instance details

Defined in Protocols.Experimental.PacketStream

type ExpectType (PacketStream dom dataWidth meta) = [PacketStreamM2S dataWidth meta]
type ExpectType (c1, c2, c3) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3) = (ExpectType c1, ExpectType c2, ExpectType c3)
type ExpectType (c1, c2, c3, c4) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4)
type ExpectType (c1, c2, c3, c4, c5) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5)
type ExpectType (c1, c2, c3, c4, c5, c6) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6)
type ExpectType (c1, c2, c3, c4, c5, c6, c7) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7)
type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8)
type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9)
type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9, ExpectType c10)
type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9, ExpectType c10, ExpectType c11)
type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9, ExpectType c10, ExpectType c11, ExpectType c12)

class (KnownNat (SimulateChannels a), Protocol a) => Simulate a where Source #

Defines functions necessary for implementation of the simulateCircuit function. This kind of simulation requires a lists for both the forward and the backward direction.

This class requires the definition of the types that the test supplies and returns. Its functions are converters from these simulation types to types on the Signal level. The simulateCircuit function can thus receive the necessary simulation types, convert them to types on the Signal level, pass those signals to the circuit, and convert the result of the circuit back to the simulation types giving the final result.

Associated Types

type SimulateFwdType a Source #

The type that a test must provide to the simulateCircuit function in the forward direction. Usually this is some sort of list.

type SimulateBwdType a Source #

The type that a test must provide to the simulateCircuit function in the backward direction. Usually this is some sort of list

type SimulateChannels a :: Nat Source #

The number of simulation channels this channel has after flattening it. For example, (Df dom a, Df dom a) has 2, while Vec 4 (Df dom a, Df dom a) has 8.

Methods

simToSigFwd :: Proxy a -> SimulateFwdType a -> Fwd a Source #

Convert the forward simulation type to the Fwd of a.

simToSigBwd :: Proxy a -> SimulateBwdType a -> Bwd a Source #

Convert the backward simulation type to the Bwd of a.

sigToSimFwd :: Proxy a -> Fwd a -> SimulateFwdType a Source #

Convert a signal of type Bwd a to the backward simulation type.

sigToSimBwd :: Proxy a -> Bwd a -> SimulateBwdType a Source #

Convert a signal of type Fwd a to the forward simulation type.

stallC :: SimulationConfig -> Vec (SimulateChannels a) (StallAck, [Int]) -> Circuit a a Source #

Create a stalling circuit. For each simulation channel (see SimulateChannels) a tuple determines how the component stalls:

  • StallAck: determines how the backward (acknowledgement) channel should behave whenever the component does not receive data from the left hand side or when it's intentionally stalling.
  • A list of Ints that determine how many stall cycles to insert on every cycle the left hand side component produces data. I.e., stalls are not inserted whenever the left hand side does not produce data.

Instances

Instances details
Simulate () Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType () 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType () = ()
type SimulateBwdType () 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType () = ()
type SimulateChannels () 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels () = 0
(KnownNat n, Simulate a) => Simulate (Vec n a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (Vec n a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (Vec n a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (Vec n a) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (Vec n a) -> SimulateFwdType (Vec n a) -> Fwd (Vec n a) Source #

simToSigBwd :: Proxy (Vec n a) -> SimulateBwdType (Vec n a) -> Bwd (Vec n a) Source #

sigToSimFwd :: Proxy (Vec n a) -> Fwd (Vec n a) -> SimulateFwdType (Vec n a) Source #

sigToSimBwd :: Proxy (Vec n a) -> Bwd (Vec n a) -> SimulateBwdType (Vec n a) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (Vec n a)) (StallAck, [Int]) -> Circuit (Vec n a) (Vec n a) Source #

(KnownDomain dom, NFDataX a, ShowX a, Show a) => Simulate (Df dom a) Source # 
Instance details

Defined in Protocols.Experimental.Df

Associated Types

type SimulateFwdType (Df dom a) 
Instance details

Defined in Protocols.Experimental.Df

type SimulateFwdType (Df dom a) = [Maybe a]
type SimulateBwdType (Df dom a) 
Instance details

Defined in Protocols.Experimental.Df

type SimulateBwdType (Df dom a) = [Ack]
type SimulateChannels (Df dom a) 
Instance details

Defined in Protocols.Experimental.Df

type SimulateChannels (Df dom a) = 1

Methods

simToSigFwd :: Proxy (Df dom a) -> SimulateFwdType (Df dom a) -> Fwd (Df dom a) Source #

simToSigBwd :: Proxy (Df dom a) -> SimulateBwdType (Df dom a) -> Bwd (Df dom a) Source #

sigToSimFwd :: Proxy (Df dom a) -> Fwd (Df dom a) -> SimulateFwdType (Df dom a) Source #

sigToSimBwd :: Proxy (Df dom a) -> Bwd (Df dom a) -> SimulateBwdType (Df dom a) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (Df dom a)) (StallAck, [Int]) -> Circuit (Df dom a) (Df dom a) Source #

(KnownManagerConfig config, KnownDomain dom, config ~ RemoveNonDfManager config) => Simulate (AvalonMmManager dom config) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

Associated Types

type SimulateFwdType (AvalonMmManager dom config) 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateFwdType (AvalonMmManager dom config) = [AvalonManagerOut config]
type SimulateBwdType (AvalonMmManager dom config) 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateBwdType (AvalonMmManager dom config) = [AvalonManagerIn config]
type SimulateChannels (AvalonMmManager dom config) 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateChannels (AvalonMmManager dom config) = 1
Simulate a => Simulate (Reverse a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (Reverse a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (Reverse a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (Reverse a) 
Instance details

Defined in Protocols.Experimental.Simulate

KnownDomain dom => Simulate (CSignal dom a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (CSignal dom a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (CSignal dom a) = [a]
type SimulateBwdType (CSignal dom a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (CSignal dom a) = ()
type SimulateChannels (CSignal dom a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (CSignal dom a) = 1
(Simulate a, Simulate b) => Simulate (a, b) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (a, b) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (a, b) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (a, b) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (a, b) -> SimulateFwdType (a, b) -> Fwd (a, b) Source #

simToSigBwd :: Proxy (a, b) -> SimulateBwdType (a, b) -> Bwd (a, b) Source #

sigToSimFwd :: Proxy (a, b) -> Fwd (a, b) -> SimulateFwdType (a, b) Source #

sigToSimBwd :: Proxy (a, b) -> Bwd (a, b) -> SimulateBwdType (a, b) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (a, b)) (StallAck, [Int]) -> Circuit (a, b) (a, b) Source #

(KnownSubordinateConfig config, KnownDomain dom, config ~ RemoveNonDfSubordinate config) => Simulate (AvalonMmSubordinate dom 0 config) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

Associated Types

type SimulateFwdType (AvalonMmSubordinate dom 0 config) 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateBwdType (AvalonMmSubordinate dom 0 config) 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateChannels (AvalonMmSubordinate dom 0 config) 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateChannels (AvalonMmSubordinate dom 0 config) = 1
(ReadyLatency conf ~ 0, KnownAvalonStreamConfig conf, NFDataX dataType, KnownDomain dom) => Simulate (AvalonStream dom conf dataType) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.Stream

Associated Types

type SimulateFwdType (AvalonStream dom conf dataType) 
Instance details

Defined in Protocols.Experimental.Avalon.Stream

type SimulateFwdType (AvalonStream dom conf dataType) = [Maybe (AvalonStreamM2S conf dataType)]
type SimulateBwdType (AvalonStream dom conf dataType) 
Instance details

Defined in Protocols.Experimental.Avalon.Stream

type SimulateBwdType (AvalonStream dom conf dataType) = [AvalonStreamS2M 0]
type SimulateChannels (AvalonStream dom conf dataType) 
Instance details

Defined in Protocols.Experimental.Avalon.Stream

type SimulateChannels (AvalonStream dom conf dataType) = 1

Methods

simToSigFwd :: Proxy (AvalonStream dom conf dataType) -> SimulateFwdType (AvalonStream dom conf dataType) -> Fwd (AvalonStream dom conf dataType) Source #

simToSigBwd :: Proxy (AvalonStream dom conf dataType) -> SimulateBwdType (AvalonStream dom conf dataType) -> Bwd (AvalonStream dom conf dataType) Source #

sigToSimFwd :: Proxy (AvalonStream dom conf dataType) -> Fwd (AvalonStream dom conf dataType) -> SimulateFwdType (AvalonStream dom conf dataType) Source #

sigToSimBwd :: Proxy (AvalonStream dom conf dataType) -> Bwd (AvalonStream dom conf dataType) -> SimulateBwdType (AvalonStream dom conf dataType) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (AvalonStream dom conf dataType)) (StallAck, [Int]) -> Circuit (AvalonStream dom conf dataType) (AvalonStream dom conf dataType) Source #

(KnownAxi4StreamConfig conf, NFDataX userType, KnownDomain dom) => Simulate (Axi4Stream dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.Stream

Associated Types

type SimulateFwdType (Axi4Stream dom conf userType) 
Instance details

Defined in Protocols.Experimental.Axi4.Stream

type SimulateFwdType (Axi4Stream dom conf userType) = [Maybe (Axi4StreamM2S conf userType)]
type SimulateBwdType (Axi4Stream dom conf userType) 
Instance details

Defined in Protocols.Experimental.Axi4.Stream

type SimulateBwdType (Axi4Stream dom conf userType) = [Axi4StreamS2M]
type SimulateChannels (Axi4Stream dom conf userType) 
Instance details

Defined in Protocols.Experimental.Axi4.Stream

type SimulateChannels (Axi4Stream dom conf userType) = 1

Methods

simToSigFwd :: Proxy (Axi4Stream dom conf userType) -> SimulateFwdType (Axi4Stream dom conf userType) -> Fwd (Axi4Stream dom conf userType) Source #

simToSigBwd :: Proxy (Axi4Stream dom conf userType) -> SimulateBwdType (Axi4Stream dom conf userType) -> Bwd (Axi4Stream dom conf userType) Source #

sigToSimFwd :: Proxy (Axi4Stream dom conf userType) -> Fwd (Axi4Stream dom conf userType) -> SimulateFwdType (Axi4Stream dom conf userType) Source #

sigToSimBwd :: Proxy (Axi4Stream dom conf userType) -> Bwd (Axi4Stream dom conf userType) -> SimulateBwdType (Axi4Stream dom conf userType) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (Axi4Stream dom conf userType)) (StallAck, [Int]) -> Circuit (Axi4Stream dom conf userType) (Axi4Stream dom conf userType) Source #

KnownDomain dom => Simulate (PacketStream dom dataWidth meta) Source # 
Instance details

Defined in Protocols.Experimental.PacketStream

Associated Types

type SimulateFwdType (PacketStream dom dataWidth meta) 
Instance details

Defined in Protocols.Experimental.PacketStream

type SimulateFwdType (PacketStream dom dataWidth meta) = [Maybe (PacketStreamM2S dataWidth meta)]
type SimulateBwdType (PacketStream dom dataWidth meta) 
Instance details

Defined in Protocols.Experimental.PacketStream

type SimulateBwdType (PacketStream dom dataWidth meta) = [PacketStreamS2M]
type SimulateChannels (PacketStream dom dataWidth meta) 
Instance details

Defined in Protocols.Experimental.PacketStream

type SimulateChannels (PacketStream dom dataWidth meta) = 1

Methods

simToSigFwd :: Proxy (PacketStream dom dataWidth meta) -> SimulateFwdType (PacketStream dom dataWidth meta) -> Fwd (PacketStream dom dataWidth meta) Source #

simToSigBwd :: Proxy (PacketStream dom dataWidth meta) -> SimulateBwdType (PacketStream dom dataWidth meta) -> Bwd (PacketStream dom dataWidth meta) Source #

sigToSimFwd :: Proxy (PacketStream dom dataWidth meta) -> Fwd (PacketStream dom dataWidth meta) -> SimulateFwdType (PacketStream dom dataWidth meta) Source #

sigToSimBwd :: Proxy (PacketStream dom dataWidth meta) -> Bwd (PacketStream dom dataWidth meta) -> SimulateBwdType (PacketStream dom dataWidth meta) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (PacketStream dom dataWidth meta)) (StallAck, [Int]) -> Circuit (PacketStream dom dataWidth meta) (PacketStream dom dataWidth meta) Source #

(Simulate c1, Simulate c2, Simulate c3) => Simulate (c1, c2, c3) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (c1, c2, c3) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3) -> SimulateFwdType (c1, c2, c3) -> Fwd (c1, c2, c3) Source #

simToSigBwd :: Proxy (c1, c2, c3) -> SimulateBwdType (c1, c2, c3) -> Bwd (c1, c2, c3) Source #

sigToSimFwd :: Proxy (c1, c2, c3) -> Fwd (c1, c2, c3) -> SimulateFwdType (c1, c2, c3) Source #

sigToSimBwd :: Proxy (c1, c2, c3) -> Bwd (c1, c2, c3) -> SimulateBwdType (c1, c2, c3) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3)) (StallAck, [Int]) -> Circuit (c1, c2, c3) (c1, c2, c3) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4) => Simulate (c1, c2, c3, c4) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (c1, c2, c3, c4) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4) -> SimulateFwdType (c1, c2, c3, c4) -> Fwd (c1, c2, c3, c4) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4) -> SimulateBwdType (c1, c2, c3, c4) -> Bwd (c1, c2, c3, c4) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4) -> Fwd (c1, c2, c3, c4) -> SimulateFwdType (c1, c2, c3, c4) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4) -> Bwd (c1, c2, c3, c4) -> SimulateBwdType (c1, c2, c3, c4) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4) (c1, c2, c3, c4) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5) => Simulate (c1, c2, c3, c4, c5) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5) -> SimulateFwdType (c1, c2, c3, c4, c5) -> Fwd (c1, c2, c3, c4, c5) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5) -> SimulateBwdType (c1, c2, c3, c4, c5) -> Bwd (c1, c2, c3, c4, c5) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5) -> Fwd (c1, c2, c3, c4, c5) -> SimulateFwdType (c1, c2, c3, c4, c5) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5) -> Bwd (c1, c2, c3, c4, c5) -> SimulateBwdType (c1, c2, c3, c4, c5) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5) (c1, c2, c3, c4, c5) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6) => Simulate (c1, c2, c3, c4, c5, c6) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6) -> SimulateFwdType (c1, c2, c3, c4, c5, c6) -> Fwd (c1, c2, c3, c4, c5, c6) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6) -> SimulateBwdType (c1, c2, c3, c4, c5, c6) -> Bwd (c1, c2, c3, c4, c5, c6) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6) -> Fwd (c1, c2, c3, c4, c5, c6) -> SimulateFwdType (c1, c2, c3, c4, c5, c6) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6) -> Bwd (c1, c2, c3, c4, c5, c6) -> SimulateBwdType (c1, c2, c3, c4, c5, c6) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6) (c1, c2, c3, c4, c5, c6) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7) => Simulate (c1, c2, c3, c4, c5, c6, c7) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) -> Fwd (c1, c2, c3, c4, c5, c6, c7) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7) -> Bwd (c1, c2, c3, c4, c5, c6, c7) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> Fwd (c1, c2, c3, c4, c5, c6, c7) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> Bwd (c1, c2, c3, c4, c5, c6, c7) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7) (c1, c2, c3, c4, c5, c6, c7) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7, Simulate c8) => Simulate (c1, c2, c3, c4, c5, c6, c7, c8) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7, c8) (c1, c2, c3, c4, c5, c6, c7, c8) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7, Simulate c8, Simulate c9) => Simulate (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7, c8, c9) (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7, Simulate c8, Simulate c9, Simulate c10) => Simulate (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7, Simulate c8, Simulate c9, Simulate c10, Simulate c11) => Simulate (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7, Simulate c8, Simulate c9, Simulate c10, Simulate c11, Simulate c12) => Simulate (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

type family SimulateBwdType a Source #

The type that a test must provide to the simulateCircuit function in the backward direction. Usually this is some sort of list

Instances

Instances details
type SimulateBwdType () Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType () = ()
type SimulateBwdType (Vec n a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (Df dom a) Source # 
Instance details

Defined in Protocols.Experimental.Df

type SimulateBwdType (Df dom a) = [Ack]
type SimulateBwdType (AvalonMmManager dom config) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateBwdType (AvalonMmManager dom config) = [AvalonManagerIn config]
type SimulateBwdType (Reverse a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (CSignal dom a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (CSignal dom a) = ()
type SimulateBwdType (a, b) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (AvalonMmSubordinate dom 0 config) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateBwdType (AvalonStream dom conf dataType) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.Stream

type SimulateBwdType (AvalonStream dom conf dataType) = [AvalonStreamS2M 0]
type SimulateBwdType (Axi4Stream dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.Stream

type SimulateBwdType (Axi4Stream dom conf userType) = [Axi4StreamS2M]
type SimulateBwdType (PacketStream dom dataWidth meta) Source # 
Instance details

Defined in Protocols.Experimental.PacketStream

type SimulateBwdType (PacketStream dom dataWidth meta) = [PacketStreamS2M]
type SimulateBwdType (c1, c2, c3) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type family SimulateChannels a :: Nat Source #

The number of simulation channels this channel has after flattening it. For example, (Df dom a, Df dom a) has 2, while Vec 4 (Df dom a, Df dom a) has 8.

Instances

Instances details
type SimulateChannels () Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels () = 0
type SimulateChannels (Vec n a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (Df dom a) Source # 
Instance details

Defined in Protocols.Experimental.Df

type SimulateChannels (Df dom a) = 1
type SimulateChannels (AvalonMmManager dom config) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateChannels (AvalonMmManager dom config) = 1
type SimulateChannels (Reverse a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (CSignal dom a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (CSignal dom a) = 1
type SimulateChannels (a, b) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (AvalonMmSubordinate dom 0 config) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateChannels (AvalonMmSubordinate dom 0 config) = 1
type SimulateChannels (AvalonStream dom conf dataType) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.Stream

type SimulateChannels (AvalonStream dom conf dataType) = 1
type SimulateChannels (Axi4Stream dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.Stream

type SimulateChannels (Axi4Stream dom conf userType) = 1
type SimulateChannels (PacketStream dom dataWidth meta) Source # 
Instance details

Defined in Protocols.Experimental.PacketStream

type SimulateChannels (PacketStream dom dataWidth meta) = 1
type SimulateChannels (c1, c2, c3) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type family SimulateFwdType a Source #

The type that a test must provide to the simulateCircuit function in the forward direction. Usually this is some sort of list.

Instances

Instances details
type SimulateFwdType () Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType () = ()
type SimulateFwdType (Vec n a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (Df dom a) Source # 
Instance details

Defined in Protocols.Experimental.Df

type SimulateFwdType (Df dom a) = [Maybe a]
type SimulateFwdType (AvalonMmManager dom config) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateFwdType (AvalonMmManager dom config) = [AvalonManagerOut config]
type SimulateFwdType (Reverse a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (CSignal dom a) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (CSignal dom a) = [a]
type SimulateFwdType (a, b) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (AvalonMmSubordinate dom 0 config) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.MemMap

type SimulateFwdType (AvalonStream dom conf dataType) Source # 
Instance details

Defined in Protocols.Experimental.Avalon.Stream

type SimulateFwdType (AvalonStream dom conf dataType) = [Maybe (AvalonStreamM2S conf dataType)]
type SimulateFwdType (Axi4Stream dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.Stream

type SimulateFwdType (Axi4Stream dom conf userType) = [Maybe (Axi4StreamM2S conf userType)]
type SimulateFwdType (PacketStream dom dataWidth meta) Source # 
Instance details

Defined in Protocols.Experimental.PacketStream

type SimulateFwdType (PacketStream dom dataWidth meta) = [Maybe (PacketStreamM2S dataWidth meta)]
type SimulateFwdType (c1, c2, c3) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (c1, c2, c3, c4) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (c1, c2, c3, c4, c5) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (c1, c2, c3, c4, c5, c6) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source # 
Instance details

Defined in Protocols.Experimental.Simulate

data SimulationConfig Source #

Specifies option for simulation functions. Don't use this constructor directly, as it may be extend with other options in the future. Use def instead.

Constructors

SimulationConfig 

Fields

data StallAck Source #

Determines what kind of acknowledgement signal stallC will send when its input component is not sending any data. Note that, in the Df protocol, protocols may send arbitrary acknowledgement signals when this happens.

Constructors

StallWithNack

Send Nack

StallWithAck

Send Ack

StallWithErrorX

Send errorX "No defined ack"

StallTransparently

Passthrough acknowledgement of RHS component

StallCycle

Cycle through all modes

simulateC Source #

Arguments

:: (Drivable a, Drivable b) 
=> Circuit a b

Circuit to simulate

-> SimulationConfig

Simulation configuration. Note that some options only apply to sampleC and some only to driveC.

-> SimulateFwdType a

Circuit input

-> SimulateFwdType b

Circuit output

Simulate a circuit. Includes samples while reset is asserted. Not synthesizable.

To figure out what input you need to supply, either solve the type SimulateFwdType manually, or let the repl do the work for you! Example:

>>> :kind! (forall dom a. SimulateFwdType (Df dom a))
...
= [Maybe a]

This would mean a Circuit (Df dom a) (Df dom b) would need [Maybe a] as the last argument of simulateC and would result in [Maybe b]. Note that for this particular type you can neither supply stalls nor introduce backpressure. If you want to do this use stall.

simulateCS Source #

Arguments

:: (Drivable a, Drivable b) 
=> Circuit a b

Circuit to simulate

-> ExpectType a

Circuit input

-> ExpectType b

Circuit output

Like simulateC, but does not allow caller to control and observe backpressure. Furthermore, it ignores all data produced while the reset is asserted.

Example:

>>> import qualified Protocols.Df as Df
>>> take 2 (simulateCS (Df.catMaybes @C.System @Int) [Nothing, Just 1, Nothing, Just 3])
[1,3]

simulateCSE Source #

Arguments

:: forall (dom :: Domain) a b. (Drivable a, Drivable b, KnownDomain dom) 
=> (Clock dom -> Reset dom -> Enable dom -> Circuit a b)

Circuit to simulate

-> ExpectType a

Circuit input

-> ExpectType b

Circuit output

Like simulateCS, but takes a circuit expecting a clock, reset, and enable.

simulateCircuit :: (Simulate a, Simulate b) => SimulateFwdType a -> SimulateBwdType b -> Circuit a b -> (SimulateBwdType a, SimulateFwdType b) Source #

Applies conversion functions defined in the Simulate instance of a and b to the given simulation types, and applies the results to the internal function of the given Circuit. The resulting internal types are converted to the simulation types.

def :: Default a => a #

The default value for this type.

Orphan instances

Backpressure () Source # 
Instance details

Methods

boolsToBwd :: Proxy () -> [Bool] -> Bwd () Source #

Drivable () Source # 
Instance details

Associated Types

type ExpectType () 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType () = ()
Simulate () Source # 
Instance details

Associated Types

type SimulateFwdType () 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType () = ()
type SimulateBwdType () 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType () = ()
type SimulateChannels () 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels () = 0
(KnownNat n, Backpressure a) => Backpressure (Vec n a) Source # 
Instance details

Methods

boolsToBwd :: Proxy (Vec n a) -> [Bool] -> Bwd (Vec n a) Source #

Backpressure (CSignal dom a) Source # 
Instance details

Methods

boolsToBwd :: Proxy (CSignal dom a) -> [Bool] -> Bwd (CSignal dom a) Source #

(Backpressure a, Backpressure b) => Backpressure (a, b) Source # 
Instance details

Methods

boolsToBwd :: Proxy (a, b) -> [Bool] -> Bwd (a, b) Source #

(KnownNat n, Drivable a) => Drivable (Vec n a) Source # 
Instance details

Associated Types

type ExpectType (Vec n a) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (Vec n a) = Vec n (ExpectType a)
(NFDataX a, ShowX a, Show a, KnownDomain dom) => Drivable (CSignal dom a) Source # 
Instance details

Associated Types

type ExpectType (CSignal dom a) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (CSignal dom a) = [a]
(Drivable a, Drivable b) => Drivable (a, b) Source # 
Instance details

Associated Types

type ExpectType (a, b) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (a, b) = (ExpectType a, ExpectType b)

Methods

toSimulateType :: Proxy (a, b) -> ExpectType (a, b) -> SimulateFwdType (a, b) Source #

fromSimulateType :: Proxy (a, b) -> SimulateFwdType (a, b) -> ExpectType (a, b) Source #

driveC :: SimulationConfig -> SimulateFwdType (a, b) -> Circuit () (a, b) Source #

sampleC :: SimulationConfig -> Circuit () (a, b) -> SimulateFwdType (a, b) Source #

(KnownNat n, Simulate a) => Simulate (Vec n a) Source # 
Instance details

Associated Types

type SimulateFwdType (Vec n a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (Vec n a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (Vec n a) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (Vec n a) -> SimulateFwdType (Vec n a) -> Fwd (Vec n a) Source #

simToSigBwd :: Proxy (Vec n a) -> SimulateBwdType (Vec n a) -> Bwd (Vec n a) Source #

sigToSimFwd :: Proxy (Vec n a) -> Fwd (Vec n a) -> SimulateFwdType (Vec n a) Source #

sigToSimBwd :: Proxy (Vec n a) -> Bwd (Vec n a) -> SimulateBwdType (Vec n a) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (Vec n a)) (StallAck, [Int]) -> Circuit (Vec n a) (Vec n a) Source #

Simulate a => Simulate (Reverse a) Source # 
Instance details

Associated Types

type SimulateFwdType (Reverse a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (Reverse a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (Reverse a) 
Instance details

Defined in Protocols.Experimental.Simulate

KnownDomain dom => Simulate (CSignal dom a) Source # 
Instance details

Associated Types

type SimulateFwdType (CSignal dom a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateFwdType (CSignal dom a) = [a]
type SimulateBwdType (CSignal dom a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (CSignal dom a) = ()
type SimulateChannels (CSignal dom a) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (CSignal dom a) = 1
(Simulate a, Simulate b) => Simulate (a, b) Source # 
Instance details

Associated Types

type SimulateFwdType (a, b) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (a, b) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (a, b) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (a, b) -> SimulateFwdType (a, b) -> Fwd (a, b) Source #

simToSigBwd :: Proxy (a, b) -> SimulateBwdType (a, b) -> Bwd (a, b) Source #

sigToSimFwd :: Proxy (a, b) -> Fwd (a, b) -> SimulateFwdType (a, b) Source #

sigToSimBwd :: Proxy (a, b) -> Bwd (a, b) -> SimulateBwdType (a, b) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (a, b)) (StallAck, [Int]) -> Circuit (a, b) (a, b) Source #

(Backpressure c1, Backpressure c2, Backpressure c3) => Backpressure (c1, c2, c3) Source # 
Instance details

Methods

boolsToBwd :: Proxy (c1, c2, c3) -> [Bool] -> Bwd (c1, c2, c3) Source #

(Drivable c1, Drivable c2, Drivable c3) => Drivable (c1, c2, c3) Source # 
Instance details

Associated Types

type ExpectType (c1, c2, c3) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3) = (ExpectType c1, ExpectType c2, ExpectType c3)

Methods

toSimulateType :: Proxy (c1, c2, c3) -> ExpectType (c1, c2, c3) -> SimulateFwdType (c1, c2, c3) Source #

fromSimulateType :: Proxy (c1, c2, c3) -> SimulateFwdType (c1, c2, c3) -> ExpectType (c1, c2, c3) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3) -> Circuit () (c1, c2, c3) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3) -> SimulateFwdType (c1, c2, c3) Source #

(Simulate c1, Simulate c2, Simulate c3) => Simulate (c1, c2, c3) Source # 
Instance details

Associated Types

type SimulateFwdType (c1, c2, c3) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3) -> SimulateFwdType (c1, c2, c3) -> Fwd (c1, c2, c3) Source #

simToSigBwd :: Proxy (c1, c2, c3) -> SimulateBwdType (c1, c2, c3) -> Bwd (c1, c2, c3) Source #

sigToSimFwd :: Proxy (c1, c2, c3) -> Fwd (c1, c2, c3) -> SimulateFwdType (c1, c2, c3) Source #

sigToSimBwd :: Proxy (c1, c2, c3) -> Bwd (c1, c2, c3) -> SimulateBwdType (c1, c2, c3) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3)) (StallAck, [Int]) -> Circuit (c1, c2, c3) (c1, c2, c3) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4) => Backpressure (c1, c2, c3, c4) Source # 
Instance details

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4) -> [Bool] -> Bwd (c1, c2, c3, c4) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4) => Drivable (c1, c2, c3, c4) Source # 
Instance details

Associated Types

type ExpectType (c1, c2, c3, c4) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4) -> ExpectType (c1, c2, c3, c4) -> SimulateFwdType (c1, c2, c3, c4) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4) -> SimulateFwdType (c1, c2, c3, c4) -> ExpectType (c1, c2, c3, c4) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4) -> Circuit () (c1, c2, c3, c4) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4) -> SimulateFwdType (c1, c2, c3, c4) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4) => Simulate (c1, c2, c3, c4) Source # 
Instance details

Associated Types

type SimulateFwdType (c1, c2, c3, c4) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4) -> SimulateFwdType (c1, c2, c3, c4) -> Fwd (c1, c2, c3, c4) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4) -> SimulateBwdType (c1, c2, c3, c4) -> Bwd (c1, c2, c3, c4) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4) -> Fwd (c1, c2, c3, c4) -> SimulateFwdType (c1, c2, c3, c4) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4) -> Bwd (c1, c2, c3, c4) -> SimulateBwdType (c1, c2, c3, c4) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4) (c1, c2, c3, c4) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5) => Backpressure (c1, c2, c3, c4, c5) Source # 
Instance details

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5) -> [Bool] -> Bwd (c1, c2, c3, c4, c5) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5) => Drivable (c1, c2, c3, c4, c5) Source # 
Instance details

Associated Types

type ExpectType (c1, c2, c3, c4, c5) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5) -> ExpectType (c1, c2, c3, c4, c5) -> SimulateFwdType (c1, c2, c3, c4, c5) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5) -> SimulateFwdType (c1, c2, c3, c4, c5) -> ExpectType (c1, c2, c3, c4, c5) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5) -> Circuit () (c1, c2, c3, c4, c5) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5) -> SimulateFwdType (c1, c2, c3, c4, c5) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5) => Simulate (c1, c2, c3, c4, c5) Source # 
Instance details

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5) -> SimulateFwdType (c1, c2, c3, c4, c5) -> Fwd (c1, c2, c3, c4, c5) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5) -> SimulateBwdType (c1, c2, c3, c4, c5) -> Bwd (c1, c2, c3, c4, c5) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5) -> Fwd (c1, c2, c3, c4, c5) -> SimulateFwdType (c1, c2, c3, c4, c5) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5) -> Bwd (c1, c2, c3, c4, c5) -> SimulateBwdType (c1, c2, c3, c4, c5) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5) (c1, c2, c3, c4, c5) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6) => Backpressure (c1, c2, c3, c4, c5, c6) Source # 
Instance details

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6) => Drivable (c1, c2, c3, c4, c5, c6) Source # 
Instance details

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6) -> ExpectType (c1, c2, c3, c4, c5, c6) -> SimulateFwdType (c1, c2, c3, c4, c5, c6) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6) -> SimulateFwdType (c1, c2, c3, c4, c5, c6) -> ExpectType (c1, c2, c3, c4, c5, c6) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6) -> Circuit () (c1, c2, c3, c4, c5, c6) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6) -> SimulateFwdType (c1, c2, c3, c4, c5, c6) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6) => Simulate (c1, c2, c3, c4, c5, c6) Source # 
Instance details

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6) -> SimulateFwdType (c1, c2, c3, c4, c5, c6) -> Fwd (c1, c2, c3, c4, c5, c6) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6) -> SimulateBwdType (c1, c2, c3, c4, c5, c6) -> Bwd (c1, c2, c3, c4, c5, c6) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6) -> Fwd (c1, c2, c3, c4, c5, c6) -> SimulateFwdType (c1, c2, c3, c4, c5, c6) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6) -> Bwd (c1, c2, c3, c4, c5, c6) -> SimulateBwdType (c1, c2, c3, c4, c5, c6) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6) (c1, c2, c3, c4, c5, c6) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7) => Backpressure (c1, c2, c3, c4, c5, c6, c7) Source # 
Instance details

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7) => Drivable (c1, c2, c3, c4, c5, c6, c7) Source # 
Instance details

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> ExpectType (c1, c2, c3, c4, c5, c6, c7) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) -> ExpectType (c1, c2, c3, c4, c5, c6, c7) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) -> Circuit () (c1, c2, c3, c4, c5, c6, c7) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7) => Simulate (c1, c2, c3, c4, c5, c6, c7) Source # 
Instance details

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) -> Fwd (c1, c2, c3, c4, c5, c6, c7) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7) -> Bwd (c1, c2, c3, c4, c5, c6, c7) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> Fwd (c1, c2, c3, c4, c5, c6, c7) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7) -> Bwd (c1, c2, c3, c4, c5, c6, c7) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7) (c1, c2, c3, c4, c5, c6, c7) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7, Backpressure c8) => Backpressure (c1, c2, c3, c4, c5, c6, c7, c8) Source # 
Instance details

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7, Drivable c8) => Drivable (c1, c2, c3, c4, c5, c6, c7, c8) Source # 
Instance details

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7, Simulate c8) => Simulate (c1, c2, c3, c4, c5, c6, c7, c8) Source # 
Instance details

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7, c8) (c1, c2, c3, c4, c5, c6, c7, c8) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7, Backpressure c8, Backpressure c9) => Backpressure (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source # 
Instance details

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7, Drivable c8, Drivable c9) => Drivable (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source # 
Instance details

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7, Simulate c8, Simulate c9) => Simulate (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source # 
Instance details

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7, c8, c9) (c1, c2, c3, c4, c5, c6, c7, c8, c9) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7, Backpressure c8, Backpressure c9, Backpressure c10) => Backpressure (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source # 
Instance details

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7, Drivable c8, Drivable c9, Drivable c10) => Drivable (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source # 
Instance details

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9, ExpectType c10)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7, Simulate c8, Simulate c9, Simulate c10) => Simulate (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source # 
Instance details

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7, Backpressure c8, Backpressure c9, Backpressure c10, Backpressure c11) => Backpressure (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source # 
Instance details

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7, Drivable c8, Drivable c9, Drivable c10, Drivable c11) => Drivable (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source # 
Instance details

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9, ExpectType c10, ExpectType c11)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7, Simulate c8, Simulate c9, Simulate c10, Simulate c11) => Simulate (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source # 
Instance details

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11) Source #

(Backpressure c1, Backpressure c2, Backpressure c3, Backpressure c4, Backpressure c5, Backpressure c6, Backpressure c7, Backpressure c8, Backpressure c9, Backpressure c10, Backpressure c11, Backpressure c12) => Backpressure (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source # 
Instance details

Methods

boolsToBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> [Bool] -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

(Drivable c1, Drivable c2, Drivable c3, Drivable c4, Drivable c5, Drivable c6, Drivable c7, Drivable c8, Drivable c9, Drivable c10, Drivable c11, Drivable c12) => Drivable (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source # 
Instance details

Associated Types

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) 
Instance details

Defined in Protocols.Experimental.Simulate

type ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) = (ExpectType c1, ExpectType c2, ExpectType c3, ExpectType c4, ExpectType c5, ExpectType c6, ExpectType c7, ExpectType c8, ExpectType c9, ExpectType c10, ExpectType c11, ExpectType c12)

Methods

toSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

fromSimulateType :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> ExpectType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

driveC :: SimulationConfig -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

sampleC :: SimulationConfig -> Circuit () (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

(Simulate c1, Simulate c2, Simulate c3, Simulate c4, Simulate c5, Simulate c6, Simulate c7, Simulate c8, Simulate c9, Simulate c10, Simulate c11, Simulate c12) => Simulate (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source # 
Instance details

Associated Types

type SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) 
Instance details

Defined in Protocols.Experimental.Simulate

type SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) 
Instance details

Defined in Protocols.Experimental.Simulate

Methods

simToSigFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

simToSigBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

sigToSimFwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> Fwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateFwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

sigToSimBwd :: Proxy (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> Bwd (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) -> SimulateBwdType (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #

stallC :: SimulationConfig -> Vec (SimulateChannels (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12)) (StallAck, [Int]) -> Circuit (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) Source #