clash-prelude-0.9.2: CAES Language for Synchronous Hardware - Prelude library

Copyright(C) 2013-2015, University of Twente
LicenseBSD2 (see the file LICENSE)
MaintainerChristiaan Baaij <christiaan.baaij@gmail.com>
Safe HaskellTrustworthy
LanguageHaskell2010

CLaSH.Sized.Index

Description

 

Synopsis

Documentation

data Index n Source

Arbitrary-bounded unsigned integer represented by ceil(log_2(n)) bits.

Given an upper bound n, an Index n number has a range of: [0 .. n-1]

>>> maxBound :: Index 8
7
>>> minBound :: Index 8
0
>>> 1 + 2 :: Index 8
3
>>> 2 + 6 :: Index 8
*** Exception: 8 is out of bounds: [0..7]
>>> 1 - 3 :: Index 8
*** Exception: -2 is out of bounds: [0..7]
>>> 2 * 3 :: Index 8
6
>>> 2 * 4 :: Index 8
*** Exception: 8 is out of bounds: [0..7]

Instances

KnownNat n => Bounded (Index n) Source 
KnownNat n => Enum (Index n) Source

The functions: enumFrom, enumFromThen, enumFromTo, and enumFromThenTo, are not synthesisable.

Eq (Index n) Source 
KnownNat n => Integral (Index n) Source 
KnownNat n => Num (Index n) Source

Operators report an error on overflow and underflow

Ord (Index n) Source 
KnownNat n => Real (Index n) Source 
Show (Index n) Source 
KnownNat n => Arbitrary (Index n) Source 
KnownNat n => CoArbitrary (Index n) Source 
KnownNat n => Default (Index n) Source 
KnownNat n => Lift (Index n) Source 
Bundle (Index n) Source 
type Unbundled' clk (Index n) = Signal' clk (Index n)