quieter builds, more type uniformity, full compiles
- made builds less verbose on Mac by removing `-cpp` - made type constructors for most instances of `(UInt (TLog n))` - addressed cases where types built upon `(UInt (TLog n))` may have a max value of `n`, which necessitates changing the type to ` (UInt (TLog (TAdd 1 n)))` - compiler wouldn't fully evaluate types unless mkBus was instantiated
This commit is contained in:
parent
548a2f26bd
commit
5efef8b19c
7 changed files with 58 additions and 20 deletions
|
@ -1,4 +1,8 @@
|
|||
package ClkDivider(mkClkDivider, ClkDivider(..)) where
|
||||
package ClkDivider(
|
||||
mkClkDivider,
|
||||
MkClkDivType,
|
||||
ClkDivider(..)
|
||||
) where
|
||||
|
||||
interface (ClkDivider :: # -> *) hi =
|
||||
{
|
||||
|
@ -7,11 +11,13 @@ interface (ClkDivider :: # -> *) hi =
|
|||
;isHalfCycle :: Bool
|
||||
}
|
||||
|
||||
type MkClkDivType maxCycles = (UInt (TLog (TAdd 1 maxCycles)))
|
||||
|
||||
mkClkDivider :: Handle -> Module (ClkDivider hi)
|
||||
mkClkDivider fileHandle = do
|
||||
counter <- mkReg(0 :: UInt (TLog hi))
|
||||
let hi_value :: UInt (TLog hi) = (fromInteger $ valueOf hi)
|
||||
let half_hi_value :: UInt (TLog hi) = (fromInteger $ valueOf (TDiv hi 2))
|
||||
counter <- mkReg(0 :: MkClkDivType hi)
|
||||
let hi_value :: (MkClkDivType hi) = (fromInteger $ valueOf hi)
|
||||
let half_hi_value :: (MkClkDivType hi) = (fromInteger $ valueOf (TDiv hi 2))
|
||||
|
||||
let val :: Real = (fromInteger $ valueOf hi)
|
||||
let msg = "Clock Div Period : " + (realToString val) + "\n"
|
||||
|
|
Reference in a new issue