RegFileΒΆ
RegFiles are on-chip arrays of registers with fixed size. RegFiles currently can be specified as one or two dimensional. Like other memories in Spatial, the contents of RegFiles are persistent across loop iterations, even when they are declared in an inner scope.
Using the <<= operator, RegFiles can be used as shift registers. 2-dimensional RegFiles must select a specific row or column before shifting using regfile(row, *) or regfile(*, col), respectively.
Static methods
object RegFile | |
---|---|
Infix methods
abstract class RegFile[T] | |
---|---|
def reset: Unit
Resets this RegFile to its initial values (or zeros, if unspecified).
|
|
class RegFile1[T] extends RegFile[T] | |
---|---|
def apply(i: Index): T
Returns the value held by the register at address i.
|
|
def <<=(data: T): Unit
Shifts in data into the first register, shifting all other values over by one position.
|
|
def load(dram: DRAMDenseTile1[T]): Unit
Creates a dense, burst load from the specified region of DRAM to this on-chip memory.
|
class RegFile2[T] extends RegFile[T] | |
---|---|
def apply(i: Index, y: Wildcard)
Returns a view of row i of this RegFile.
|
|
def apply(y: Wildcard, i: Index)
Returns a view of column i of this RegFile.
|
|
def load(dram: DRAMDenseTile2[T]): Unit
Creates a dense, burst load from the specified region of DRAM to this on-chip memory.
|
class RegFile3[T] extends RegFile[T] | |
---|---|
def load(dram: DRAMDenseTile3[T]): Unit
Creates a dense, burst load from the specified region of DRAM to this on-chip memory.
|