| Copyright | (C) 2015-2016, University of Twente |
|---|---|
| License | BSD2 (see the file LICENSE) |
| Maintainer | Christiaan Baaij <christiaan.baaij@gmail.com> |
| Safe Haskell | Safe |
| Language | Haskell2010 |
| Extensions |
|
CLaSH.Prelude.ROM
Contents
Description
ROMs
- asyncRom :: (KnownNat n, Enum addr) => Vec n a -> addr -> a
- asyncRomPow2 :: (KnownNat (2 ^ n), KnownNat n) => Vec (2 ^ n) a -> Unsigned n -> a
- rom :: (KnownNat n, KnownNat m) => Vec n a -> Signal (Unsigned m) -> Signal a
- romPow2 :: (KnownNat (2 ^ n), KnownNat n) => Vec (2 ^ n) a -> Signal (Unsigned n) -> Signal a
- rom' :: (KnownNat n, Enum addr) => SClock clk -> Vec n a -> Signal' clk addr -> Signal' clk a
- romPow2' :: (KnownNat (2 ^ n), KnownNat n) => SClock clk -> Vec (2 ^ n) a -> Signal' clk (Unsigned n) -> Signal' clk a
- asyncRom# :: KnownNat n => Vec n a -> Int -> a
- rom# :: KnownNat n => SClock clk -> Vec n a -> Signal' clk Int -> Signal' clk a
Asynchronous ROM
Arguments
| :: (KnownNat n, Enum addr) | |
| => Vec n a | ROM content NB: must be a constant |
| -> addr | Read address |
| -> a | The value of the ROM at address |
An asynchronous/combinational ROM with space for n elements
Additional helpful information:
- See CLaSH.Sized.Fixed and CLaSH.Prelude.BlockRam for ideas on how to use ROMs and RAMs
Arguments
| :: (KnownNat (2 ^ n), KnownNat n) | |
| => Vec (2 ^ n) a | ROM content NB: must be a constant |
| -> Unsigned n | Read address |
| -> a | The value of the ROM at address |
An asynchronous/combinational ROM with space for 2^n elements
Additional helpful information:
- See CLaSH.Sized.Fixed and CLaSH.Prelude.BlockRam for ideas on how to use ROMs and RAMs
Synchronous ROM synchronised to the system clock
Arguments
| :: (KnownNat n, KnownNat m) | |
| => Vec n a | ROM content NB: must be a constant |
| -> Signal (Unsigned m) | Read address |
| -> Signal a | The value of the ROM at address |
A ROM with a synchronous read port, with space for n elements
- NB: Read value is delayed by 1 cycle
- NB: Initial output value is
undefined
Additional helpful information:
- See CLaSH.Sized.Fixed and CLaSH.Prelude.BlockRam for ideas on how to use ROMs and RAMs
Arguments
| :: (KnownNat (2 ^ n), KnownNat n) | |
| => Vec (2 ^ n) a | ROM content NB: must be a constant |
| -> Signal (Unsigned n) | Read address |
| -> Signal a | The value of the ROM at address |
A ROM with a synchronous read port, with space for 2^n elements
- NB: Read value is delayed by 1 cycle
- NB: Initial output value is
undefined
Additional helpful information:
- See CLaSH.Sized.Fixed and CLaSH.Prelude.BlockRam for ideas on how to use ROMs and RAMs
Synchronous ROM synchronised to an arbitrary clock
Arguments
| :: (KnownNat n, Enum addr) | |
| => SClock clk |
|
| -> Vec n a | ROM content NB: must be a constant |
| -> Signal' clk addr | Read address |
| -> Signal' clk a | The value of the ROM at address |
A ROM with a synchronous read port, with space for n elements
- NB: Read value is delayed by 1 cycle
- NB: Initial output value is
undefined
Additional helpful information:
- See CLaSH.Sized.Fixed and CLaSH.Prelude.BlockRam for ideas on how to use ROMs and RAMs
Arguments
| :: (KnownNat (2 ^ n), KnownNat n) | |
| => SClock clk |
|
| -> Vec (2 ^ n) a | ROM content NB: must be a constant |
| -> Signal' clk (Unsigned n) | Read address |
| -> Signal' clk a | The value of the ROM at address |
A ROM with a synchronous read port, with space for 2^n elements
- NB: Read value is delayed by 1 cycle
- NB: Initial output value is
undefined
Additional helpful information:
- See CLaSH.Sized.Fixed and CLaSH.Prelude.BlockRam for ideas on how to use ROMs and RAMs