| Copyright | (c) David Cox 2021 |
|---|---|
| License | BSD-3-Clause |
| Maintainer | standardsemiconductor@gmail.com |
| Safe Haskell | None |
| Language | Haskell2010 |
Lion.Core
Description
Synopsis
- core :: forall a dom. HiddenClockResetEnable dom => Alu a => CoreConfig (a :: AluConfig) -> Signal dom (BitVector 32) -> FromCore dom
- defaultCoreConfig :: CoreConfig 'Soft
- defaultPipeConfig :: PipeConfig
- newtype CoreConfig (a :: AluConfig) = CoreConfig {}
- data AluConfig
- newtype PipeConfig = PipeConfig {}
- data FromCore dom = FromCore {}
- data ToMem = ToMem {
- memAccess :: MemoryAccess
- memAddress :: BitVector 32
- memByteMask :: BitVector 4
- memWrite :: Maybe (BitVector 32)
- data MemoryAccess
- class Alu (config :: AluConfig)
Documentation
Arguments
| :: forall a dom. HiddenClockResetEnable dom | |
| => Alu a | |
| => CoreConfig (a :: AluConfig) | core configuration |
| -> Signal dom (BitVector 32) | core input, from memory/peripherals |
| -> FromCore dom | core output |
RISC-V Core: RV32I
defaultPipeConfig :: PipeConfig Source #
Default pipeline configuration
startPC = 0
newtype CoreConfig (a :: AluConfig) Source #
Core configuration
ALU configuration default: Soft
Constructors
| CoreConfig | |
Fields
| |
Instances
| Eq (CoreConfig a) Source # | |
Defined in Lion.Core | |
| Show (CoreConfig a) Source # | |
Defined in Lion.Core Methods showsPrec :: Int -> CoreConfig a -> ShowS # show :: CoreConfig a -> String # showList :: [CoreConfig a] -> ShowS # | |
| Generic (CoreConfig a) Source # | |
| type Rep (CoreConfig a) Source # | |
Defined in Lion.Core type Rep (CoreConfig a) = D1 ('MetaData "CoreConfig" "Lion.Core" "lion-0.2.0.0-1lYjfC99CiCH8z7A9CBLqD" 'True) (C1 ('MetaCons "CoreConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "pipeConfig") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PipeConfig))) | |
ALU configuration
Constructors
| Hard | use hard adder and subtractor from iCE40 SB_MAC16 |
| Soft | use generic adder and subtractor: (+) and (-) |
newtype PipeConfig Source #
Pipeline configuration
Constructors
| PipeConfig | |
Instances
| Eq PipeConfig Source # | |
Defined in Lion.Pipe | |
| Show PipeConfig Source # | |
Defined in Lion.Pipe Methods showsPrec :: Int -> PipeConfig -> ShowS # show :: PipeConfig -> String # showList :: [PipeConfig] -> ShowS # | |
| Generic PipeConfig Source # | |
| type Rep PipeConfig Source # | |
Defined in Lion.Pipe type Rep PipeConfig = D1 ('MetaData "PipeConfig" "Lion.Pipe" "lion-0.2.0.0-1lYjfC99CiCH8z7A9CBLqD" 'True) (C1 ('MetaCons "PipeConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "startPC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BitVector 32)))) | |
Core outputs
Memory bus
Constructors
| ToMem | |
Fields
| |
Instances
| Eq ToMem Source # | |
| Show ToMem Source # | |
| Generic ToMem Source # | |
| NFDataX ToMem Source # | |
| type Rep ToMem Source # | |
Defined in Lion.Pipe type Rep ToMem = D1 ('MetaData "ToMem" "Lion.Pipe" "lion-0.2.0.0-1lYjfC99CiCH8z7A9CBLqD" 'False) (C1 ('MetaCons "ToMem" 'PrefixI 'True) ((S1 ('MetaSel ('Just "memAccess") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MemoryAccess) :*: S1 ('MetaSel ('Just "memAddress") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BitVector 32))) :*: (S1 ('MetaSel ('Just "memByteMask") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BitVector 4)) :*: S1 ('MetaSel ('Just "memWrite") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (BitVector 32)))))) | |
data MemoryAccess Source #
Memory access - Lion has a shared instruction/memory bus
Instances
| Eq MemoryAccess Source # | |
Defined in Lion.Pipe | |
| Show MemoryAccess Source # | |
Defined in Lion.Pipe Methods showsPrec :: Int -> MemoryAccess -> ShowS # show :: MemoryAccess -> String # showList :: [MemoryAccess] -> ShowS # | |
| Generic MemoryAccess Source # | |
| NFDataX MemoryAccess Source # | |
Defined in Lion.Pipe Methods deepErrorX :: String -> MemoryAccess # hasUndefined :: MemoryAccess -> Bool # ensureSpine :: MemoryAccess -> MemoryAccess # rnfX :: MemoryAccess -> () # | |
| type Rep MemoryAccess Source # | |