copilot-libraries-2.2.0: Libraries for the Copilot language.

Copyright (c) 2011 National Institute of Aerospace / Galois, Inc. Safe Haskell2010

Copilot.Library.Clocks

Description

This library generates new clocks based on a base period and phase.

# Example Usage

Also see `Examples/ClockExamples.hs` in the Copilot repository.

```    `clk` ( `period` 3 ) ( `phase` 1 )
```

is equivalent to a stream of values like:

```    cycle [False, True, False]
```

that generates a stream of values

```    False True False False True False False True False ...
0     1    2     3     4    5     6     7    8
```

That is true every 3 ticks (the period) starting on the 1st tick (the phase).

Synopsis

# Documentation

Arguments

 :: Integral a => Period a Period `n` of clock -> Phase a Phase `m` of clock -> Stream Bool Clock signal - `True` on clock ticks, `False` otherwise

Generate a clock that counts every `n` ticks, starting at tick `m`, by using an array of size `n`.

Arguments

 :: (Integral a, Typed a) => Period a Period `n` of clock -> Phase a Phase `m` of clock -> Stream Bool Clock signal - `True` on clock ticks, `False` otherwise

This follows the same convention as `clk`, but uses a counter variable of integral type a rather than an array.

period :: Integral a => a -> Period a Source

Constructor for a `Period`. Note that period must be greater than 0.

phase :: Integral a => a -> Phase a Source

Constructor for a `Phase`. Note that phase must be greater than or equal to 0, and must be less than the period.