-
Notifications
You must be signed in to change notification settings - Fork 3
/
Clock.hs
36 lines (31 loc) · 960 Bytes
/
Clock.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{-|
Module : Ice40.Clock
Description : Ice40 Clock domains
Copyright : (c) David Cox, 2021-2024
License : BSD 3-Clause
Maintainer : standardsemiconductor@gmail.com
Commonly used clock domains with ice40 IP
-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Ice40.Clock
( vLattice10kHz
, Lattice10kHz
, vLattice48Mhz
, vLattice24Mhz
, vLattice12Mhz
, vLattice6Mhz
, Lattice48Mhz
, Lattice24Mhz
, Lattice12Mhz
, Lattice6Mhz
, latticeRst
) where
import Clash.Prelude
createDomain vXilinxSystem{vName="Lattice10kHz", vPeriod=100000000}
createDomain vXilinxSystem{vName="Lattice48Mhz", vPeriod=20833}
createDomain vXilinxSystem{vName="Lattice24Mhz", vPeriod=41666}
createDomain vXilinxSystem{vName="Lattice12Mhz", vPeriod=83333}
createDomain vXilinxSystem{vName="Lattice6Mhz", vPeriod=166660}
-- | Lattice reset signal, always inactive
latticeRst :: KnownDomain dom => Reset dom
latticeRst = unsafeFromActiveHigh $ pure False