c

ambel

Apb2Net

class Apb2Net extends Module

APB2 Network

Parameterizable number of initiators and memory mapped targets. Arbitration between initiators for access to targets. Default parameterization connects one APB initiator to two APB targets. Cross-bar network topology. To be clear, this Module drives its targets and responds to its initiators, but where it is instantiated its initators are targets and its targets are initiators.

To do

implement PIPE_CTRL as described

Note

targets are assumed to be contiguously mapped from the base (with no gaps in map, i.e. if there are two targets of size 4kB and 8kB, respectively, and the base address of the first is @0x0 then the base address of the second is implicitly @4kB)

,

this module is not optimized for throughput, but for easy timing closure and low power

Linear Supertypes
Module, ImplicitReset, ImplicitClock, RawModule, BaseModule, IsInstantiable, HasId, InstanceId, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Apb2Net
  2. Module
  3. ImplicitReset
  4. ImplicitClock
  5. RawModule
  6. BaseModule
  7. IsInstantiable
  8. HasId
  9. InstanceId
  10. AnyRef
  11. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Apb2Net(BASE_ADDR: Int = 0, GRANULE_SIZE_K: Int = 4, NUM_INIT: Int = 1, NUM_TARG: Int = 2, TARGET_SIZES: Array[Int] = new Array[Int](2), DATA_W: Int = 32, ADDR_W: Int = 32, PIPE_CTRL: Int = 0)

    BASE_ADDR

    base address of the network in bytes (must be multiple of GRANULE_SIZE_K)

    GRANULE_SIZE_K

    minimum size of address space of one APB target (kB >= 4)

    NUM_INIT

    number of initiators

    NUM_TARG

    number of targets

    TARGET_SIZES

    array of target sizes (multiples of GRANULE_SIZE_K)

    DATA_W

    the width of the APB data buses in bits

    ADDR_W

    the width of the APB address buses in bits

    PIPE_CTRL

    adds pipeline register stages as follows 0: none, 1: after arbitration, 2: for each target

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val ADDR_W: Int
  5. val APB_ALGN: Int
  6. val ArbInst: Arbiter[Apb2ReqCtrl]
  7. val BASE_ADDR: Int
  8. val DATA_W: Int
  9. val GRANULE_SIZE_K: Int
  10. def IO[T <: Data](iodef: => T)(implicit sourceInfo: SourceInfo): T
    Attributes
    protected
    Definition Classes
    BaseModule
  11. val NUM_BYTE: Int
  12. val NUM_INIT: Int
  13. val NUM_TARG: Int
  14. val PIPE_CTRL: Int
  15. val SEL_ALGN: Int
  16. val TARGET_SIZES: Array[Int]
  17. def _bindIoInPlace(iodef: Data)(implicit sourceInfo: SourceInfo): Unit
    Attributes
    protected
    Definition Classes
    BaseModule
  18. var _closed: Boolean
    Attributes
    protected
    Definition Classes
    BaseModule
  19. def _moduleDefinitionIdentifierProposal: String
    Attributes
    protected
    Definition Classes
    BaseModule
  20. def _sourceInfo: SourceInfo
    Attributes
    protected
    Definition Classes
    BaseModule
  21. def _traitModuleDefinitionIdentifierProposal: Option[String]
    Attributes
    protected
    Definition Classes
    BaseModule
  22. val activeReq: Bool
  23. val apb2Choice: DecoupledIO[Apb2ReqCtrl]
  24. val apb2ChoiceRsp: Apb2Rsp
  25. val apb2InitChoiceReqFF: Apb2Req
  26. val apb2ReqVec: Vec[DecoupledIO[Apb2ReqCtrl]]
  27. val apb2TargetSel: UInt
  28. val apb2TargetSelRspFF: Apb2Rsp
  29. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  30. def atModuleBodyEnd(gen: => Unit): Unit
    Attributes
    protected
    Definition Classes
    RawModule
  31. val chosen: UInt
  32. def circuitName: String
    Definition Classes
    HasId
  33. final val clock: Clock
    Definition Classes
    Module
  34. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
  35. final val definitionIdentifier: String
    Definition Classes
    BaseModule
  36. def desiredName: String
    Definition Classes
    BaseModule
  37. def endIOCreation()(implicit si: SourceInfo): Unit
    Definition Classes
    BaseModule
  38. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  39. def equals(that: Any): Boolean
    Definition Classes
    HasId → AnyRef → Any
  40. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  41. def getCommands: Seq[Command]
    Attributes
    protected
    Definition Classes
    RawModule
  42. def getModulePorts: Seq[Data]
    Attributes
    protected[chisel3]
    Definition Classes
    BaseModule
  43. def hasSeed: Boolean
    Definition Classes
    HasId
  44. def hashCode(): Int
    Definition Classes
    HasId → AnyRef → Any
  45. def implicitClock: Clock
    Attributes
    protected
    Definition Classes
    Module → ImplicitClock
  46. def implicitReset: Reset
    Attributes
    protected
    Definition Classes
    Module → ImplicitReset
  47. def instanceName: String
    Definition Classes
    BaseModule → HasId → InstanceId
  48. val io: Bundle { ... /* 2 definitions in type refinement */ }
  49. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  50. final lazy val name: String
    Definition Classes
    BaseModule
  51. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  52. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  53. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  54. val pReadyFF: Vec[Bool]
  55. def parentModName: String
    Definition Classes
    HasId → InstanceId
  56. def parentPathName: String
    Definition Classes
    HasId → InstanceId
  57. def pathName: String
    Definition Classes
    HasId → InstanceId
  58. def portsContains(elem: Data): Boolean
    Attributes
    protected
    Definition Classes
    BaseModule
  59. def portsSize: Int
    Attributes
    protected
    Definition Classes
    BaseModule
  60. val reqVec: Vec[Bool]
  61. final val reset: Reset
    Definition Classes
    Module
  62. def resetType: Type
    Definition Classes
    Module
  63. val stateFF: Apb2NetStateEnum.Type
  64. def suggestName(seed: => String): Apb2Net.this.type
    Definition Classes
    HasId
  65. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  66. def targetMatch(sel: UInt, bot: Int, top: Int): Bool
  67. val targetSpace: Array[Int]
  68. final def toAbsoluteTarget: IsModule
    Definition Classes
    BaseModule → InstanceId
  69. final def toNamed: ModuleName
    Definition Classes
    BaseModule → InstanceId
  70. final def toRelativeTarget(root: Option[BaseModule]): IsModule
    Definition Classes
    BaseModule
  71. def toString(): String
    Definition Classes
    AnyRef → Any
  72. final def toTarget: ModuleTarget
    Definition Classes
    BaseModule → InstanceId
  73. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  74. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  75. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  76. object Apb2NetStateEnum extends ChiselEnum

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

  2. def override_clock: Option[Clock]
    Attributes
    protected
    Definition Classes
    Module
    Annotations
    @deprecated
    Deprecated

    (Since version Chisel 3.5) Use withClock at Module instantiation

  3. def override_clock_=(rhs: Option[Clock]): Unit
    Attributes
    protected
    Definition Classes
    Module
    Annotations
    @deprecated
    Deprecated

    (Since version Chisel 3.5) Use withClock at Module instantiation

  4. def override_reset: Option[Bool]
    Attributes
    protected
    Definition Classes
    Module
    Annotations
    @deprecated
    Deprecated

    (Since version Chisel 3.5) Use withClock at Module instantiation

  5. def override_reset_=(rhs: Option[Bool]): Unit
    Attributes
    protected
    Definition Classes
    Module
    Annotations
    @deprecated
    Deprecated

    (Since version Chisel 3.5) Use withClock at Module instantiation

Inherited from Module

Inherited from ImplicitReset

Inherited from ImplicitClock

Inherited from RawModule

Inherited from BaseModule

Inherited from IsInstantiable

Inherited from HasId

Inherited from InstanceId

Inherited from AnyRef

Inherited from Any

Ungrouped