Chisel

SysCBackend

class SysCBackend extends CppBackend

If we have structured/aggregate types as top-level ports, we define suitable structures for encapsulating their components, in order to treat them as sc_fifo elements.

Source
SysC.scala
Linear Supertypes
Type Hierarchy Learn more about scaladoc diagrams
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. SysCBackend
  2. CppBackend
  3. Backend
  4. FileSystemUtilities
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SysCBackend()

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. val CC: String

    Attributes
    protected
    Definition Classes
    FileSystemUtilities
  7. val CCFLAGS: String

    Attributes
    protected
    Definition Classes
    FileSystemUtilities
  8. val CPPFLAGS: String

    Attributes
    protected
    Definition Classes
    FileSystemUtilities
  9. val CXX: String

    Attributes
    protected
    Definition Classes
    FileSystemUtilities
  10. val CXXFLAGS: String

    Attributes
    protected
    Definition Classes
    FileSystemUtilities
  11. val LDFLAGS: String

    Attributes
    protected
    Definition Classes
    FileSystemUtilities
  12. def W0Wtransform(): Unit

    Definition Classes
    Backend
  13. def addBindings: Unit

    Definition Classes
    Backend
  14. def addClocksAndResets: Unit

    Definition Classes
    Backend
  15. def addDefaultResets: Unit

    Definition Classes
    Backend
  16. val allocateOnlyNeededShadowRegisters: Boolean

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  17. val allocatedShadow: HashSet[Node]

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  18. val analyses: ArrayBuffer[(Module) ⇒ Unit]

    Definition Classes
    Backend
  19. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  20. def asValidName(name: String): String

    Definition Classes
    Backend
  21. def assignClockAndResetToModules: Unit

    Definition Classes
    Backend
  22. def block(s: Seq[String]): String

    Definition Classes
    CppBackend
  23. val bpw: Int

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  24. def cc(dir: String, name: String, flags: String = "", isCC: Boolean = false): Unit

    Definition Classes
    FileSystemUtilities
  25. def checkModuleResolution: Unit

    Definition Classes
    Backend
  26. def checkPorts: Unit

    Definition Classes
    Backend
  27. val chiselENV: String

    Attributes
    protected
    Definition Classes
    FileSystemUtilities
  28. def clkName(clock: Clock): String

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  29. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  30. val coalesceConstants: Boolean

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  31. def collectNodesIntoComp(mod: Module): Unit

    Definition Classes
    Backend
  32. def compile(c: Module, flagsIn: Option[String]): Unit

    Definition Classes
    CppBackendBackend
  33. val compileInitializationUnoptimized: Boolean

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  34. val compileMultipleCppFiles: Boolean

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  35. def computeMemPorts(mod: Module): Unit

    Definition Classes
    Backend
  36. def connectResets: Unit

    Definition Classes
    Backend
  37. val constantPool: HashMap[(String, Width), Literal]

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  38. def convertMaskedWrites(mod: Module): Unit

    Definition Classes
    Backend
  39. def copyToTarget(filename: String): Unit

    Definition Classes
    FileSystemUtilities
  40. def createOutputFile(name: String): FileWriter

    Definition Classes
    FileSystemUtilities
  41. def determineRequiredShadowRegisters(node: Node): Unit

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  42. def elaborate(c: Module): Unit

    Definition Classes
    SysCBackendCppBackendBackend
  43. def emitCircuitAssign(srcPrefix: String, node: Node): String

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  44. def emitDatRef(x: Node): String

    Definition Classes
    CppBackend
  45. def emitDec(node: Node): String

    Definition Classes
    CppBackendBackend
  46. def emitDef(node: Node): String

    Definition Classes
    Backend
  47. def emitDefHi(node: Node): String

    Definition Classes
    CppBackend
  48. def emitDefLo(node: Node): String

    Definition Classes
    CppBackend
  49. def emitInit(node: Node): String

    Definition Classes
    CppBackend
  50. def emitInitHi(node: Node): String

    Definition Classes
    CppBackend
  51. def emitLitVal(n: Node, w: Int): String

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  52. def emitLoWordRef(node: Node): String

    Definition Classes
    CppBackend
  53. def emitLog2(x: Node, priEnc: Boolean = false): String

    Definition Classes
    CppBackend
  54. def emitRef(node: Node): String

    Definition Classes
    CppBackendBackend
  55. def emitRef(c: Module): String

    Definition Classes
    Backend
  56. def emitRefHi(node: Node): String

    Definition Classes
    CppBackend
  57. def emitTmp(node: Node): String

    Definition Classes
    CppBackendBackend
  58. def emitTmpDec(node: Node): String

    Definition Classes
    CppBackend
  59. def emitValue(value: BigInt, w: Int = 0): String

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  60. def emitValueAddress(node: Node): String

    Definition Classes
    CppBackend
  61. def emitWordRef(node: Node, w: Int): String

    Definition Classes
    CppBackend
  62. def ensureDir(dir: String): String

    Ensures a directory *dir* exists on the filesystem.

    Ensures a directory *dir* exists on the filesystem.

    Definition Classes
    FileSystemUtilities
  63. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  64. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  65. def execute(c: Module, walks: ArrayBuffer[(Module) ⇒ Unit]): Unit

    Definition Classes
    Backend
  66. def extractClassName(comp: Module): String

    Definition Classes
    Backend
  67. def finalize(): Unit

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

    Definition Classes
    Backend
  69. def findConsumers(mod: Module): Unit

    Definition Classes
    Backend
  70. def findGraphDims: (Int, Int, Int)

    Definition Classes
    Backend
  71. def flattenAll: Unit

    Definition Classes
    Backend
  72. def forceMatchingWidths: Unit

    Definition Classes
    Backend
  73. def fullWords(node: Node): Int

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  74. def fullyQualifiedName(m: Node): String

    Definition Classes
    Backend
  75. def gatherClocksAndResets: Unit

    Definition Classes
    Backend
  76. def genHarness(c: Module, name: String): Unit

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  77. def genIndent(x: Int): String

    Prints the call stack of Component as seen by the push/pop runtime.

    Prints the call stack of Component as seen by the push/pop runtime.

    Attributes
    protected
    Definition Classes
    Backend
  78. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  79. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  80. def inferAll(mod: Module): Int

    Definition Classes
    Backend
  81. def isBitsIo(node: Node, dir: IODirection): Boolean

    Nodes which are created outside the execution trace from the toplevel component constructor (i.

    Nodes which are created outside the execution trace from the toplevel component constructor (i.e. through the () => Module(new Top()) ChiselMain argument) will have a component field set to null. For example, genMuxes, forceMatchWidths and transforms (all called from Backend.elaborate) create such nodes.

    This method walks all nodes from all component roots (outputs, debugs). and reassociates the component to the node both ways (i.e. in Driver.nodes and Node.component).

    We assume here that all nodes at the components boundaries (io) have a non-null and correct node/component association. We further assume that nodes generated in elaborate are inputs to a node whose component field is set.

    Implementation Node: At first we did implement *collectNodesIntoComp* to handle a single component at a time but that did not catch the cases where Regs are passed as input to sub-module without being tied to an output of *this.component*.

    Definition Classes
    Backend
  82. def isEmittingComponents: Boolean

    Definition Classes
    Backend
  83. def isInObject(n: Node): Boolean

    Definition Classes
    CppBackendBackend
  84. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  85. def isLit(node: Node): Boolean

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  86. val keywords: Set[String]

    Definition Classes
    Backend
  87. def link(dir: String, target: String, objects: Seq[String], isCC: Boolean = false, isLib: Boolean = false): Unit

    Definition Classes
    FileSystemUtilities
  88. def lowerNodes(mod: Module): Unit

    Definition Classes
    Backend
  89. def markComponents: Unit

    Definition Classes
    Backend
  90. var maxFiles: Int

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  91. val multiwordLiteralInObject: Boolean

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  92. val multiwordLiterals: HashSet[Literal]

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  93. def nameAll(): Unit

    Definition Classes
    Backend
  94. def nameBindings: Unit

    Definition Classes
    Backend
  95. def nameRsts: Unit

    Definition Classes
    Backend
  96. val nameSpace: HashSet[String]

    Definition Classes
    Backend
  97. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  98. val needShadow: HashSet[Node]

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  99. val needsLowering: Set[String]

    Definition Classes
    Backend
  100. def nodeVars(node: Node): List[(String, String)]

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  101. final def notify(): Unit

    Definition Classes
    AnyRef
  102. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  103. val onceOnlyFiles: HashSet[String]

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  104. def opFoldLeft(o: Op, initial: (String, String) ⇒ String, subsequent: (String, String, String) ⇒ String): String

    Definition Classes
    CppBackend
  105. var potentialShadowRegisters: Int

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  106. def printStack: Unit

    Attributes
    protected
    Definition Classes
    Backend
  107. def pruneUnconnectedIOs: Unit

    Definition Classes
    Backend
  108. val regWritten: HashSet[Node]

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  109. def removeTypeNodes(mod: Module): Int

    All classes inherited from Data are used to add type information and do not represent logic itself.

    All classes inherited from Data are used to add type information and do not represent logic itself.

    Definition Classes
    Backend
  110. def renameNodes(nodes: Seq[Node], sep: String = "_"): Unit

    Ensures each node such that it has a unique name across the whole hierarchy by prefixing its name by a component path (except for "reset" and all nodes in *c*).

    Ensures each node such that it has a unique name across the whole hierarchy by prefixing its name by a component path (except for "reset" and all nodes in *c*).

    Definition Classes
    Backend
  111. def run(cmd: String): Boolean

    Definition Classes
    FileSystemUtilities
  112. val shadowRegisterInObject: Boolean

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  113. def sortComponents: Unit

    Definition Classes
    Backend
  114. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  115. def toString(): String

    Definition Classes
    AnyRef → Any
  116. def topMod: Module

    Definition Classes
    Backend
  117. val transforms: ArrayBuffer[(Module) ⇒ Unit]

    Definition Classes
    Backend
  118. def trunc(x: Node): String

    Definition Classes
    CppBackend
  119. val unconnectedInputs: HashSet[Node]

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  120. val unconnectedInputsInObject: Boolean

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  121. val unoptimizedFiles: HashSet[String]

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  122. def verifyAllMuxes: Unit

    Definition Classes
    Backend
  123. def verifyComponents: Unit

    Definition Classes
    Backend
  124. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  125. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  126. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  127. def wordMangle(x: Node, w: Int): String

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  128. def wordMangle(x: Node, w: String): String

    Attributes
    protected[this]
    Definition Classes
    CppBackend
  129. def words(node: Node): Int

    Attributes
    protected[this]
    Definition Classes
    CppBackend

Inherited from CppBackend

Inherited from Backend

Inherited from FileSystemUtilities

Inherited from AnyRef

Inherited from Any

Ungrouped