abstract class SRAM[A, C[T]] extends Top[C[A]] with LocalMem[A, C]
- Alphabetic
- By Inheritance
- SRAM
- LocalMem
- Mem
- Top
- Ref
- Exp
- ExpType
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
type
L = Any
- Definition Classes
- Ref → Exp → ExpType
Abstract Value Members
- abstract def rank: Int
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
!==(that: Any): argon.lang.Bit
- Definition Classes
- Top
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
++(that: Any): argon.lang.Text
- Definition Classes
- Top
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
===(that: Any): argon.lang.Bit
- Definition Classes
- Top
- val A: lang.Bits[A]
-
def
M1: Type[SRAM1[A]]
- Attributes
- protected
-
def
M2: Type[SRAM2[A]]
- Attributes
- protected
-
def
M3: Type[SRAM3[A]]
- Attributes
- protected
-
def
M4: Type[SRAM4[A]]
- Attributes
- protected
-
def
M5: Type[SRAM5[A]]
- Attributes
- protected
-
val
__neverMutable: Boolean
- Attributes
- protected
- Definition Classes
- Mem → ExpType
- def __read(addr: Seq[lang.Idx], ens: Set[lang.Bit]): A
- def __reset(ens: Set[lang.Bit]): lang.Void
-
def
__typeArgs: Seq[Type[_]]
- Attributes
- protected
- Definition Classes
- ExpType
-
def
__typeParams: Seq[Any]
- Attributes
- protected
- Definition Classes
- ExpType
-
def
__typePrefix: String
- Attributes
- protected
- Definition Classes
- ExpType
- def __write(data: A, addr: Seq[lang.Idx], ens: Set[lang.Bit]): lang.Void
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
bank(N: Seq[Int], B: Seq[Int], alpha: Seq[Int]): C[A]
Provide explicit banking scheme that you want to use.
Provide explicit banking scheme that you want to use. If this scheme is unsafe, it will crash. It will also assume only one duplicate
-
def
blockcyclic_Bs(bs: Seq[Int]): C[A]
Set search range bs to search for
-
def
buffer: C[A]
Indicate that the memory should be buffered and ignore potential situation where result from running sequentially does not match with resurt from running pipelined
-
final
def
canEqual(that: Any): Boolean
- Definition Classes
- Ref → Equals
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- def coalesce: C[A]
-
def
conflictable: C[A]
Allow "unsafe" banking, where two writes can technically happen simultaneously and one will be dropped.
Allow "unsafe" banking, where two writes can technically happen simultaneously and one will be dropped. Use in cases where writes may happen in parallel but you are either sure that two writes won't happen simultaneously due to data-dependent control flow or that you don't care if one write gets dropped
-
def
dim0: lang.I32
Returns dim0 of this DRAM, or else 1 if SRAM is lower dimensional
-
def
dim1: lang.I32
Returns dim1 of this DRAM, or else 1 if SRAM is lower dimensional
-
def
dim2: lang.I32
Returns dim2 of this DRAM, or else 1 if SRAM is lower dimensional
-
def
dim3: lang.I32
Returns dim3 of this DRAM, or else 1 if SRAM is lower dimensional
-
def
dim4: lang.I32
Returns dim4 of this DRAM, or else 1 if SRAM is lower dimensional
-
def
dims: Seq[lang.I32]
Returns the dimensions of this SRAM as a Sequence.
- def duplicateaxes(opts: Seq[Seq[Int]])(implicit state: State): C[A]
-
def
effort(e: Int): C[A]
Specify banking search effort for this memory
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
eql(that: C[A]): argon.lang.Bit
- Definition Classes
- Top
-
final
def
equals(x: Any): Boolean
- Definition Classes
- Ref → Equals → AnyRef → Any
- implicit val evMem: <:<[C[A], SRAM[A, C]]
-
implicit
val
evRef: <:<[C[A] @scala.annotation.unchecked.uncheckedVariance, Ref[Any, C[A] @scala.annotation.unchecked.uncheckedVariance]]
- Attributes
- protected[argon]
- Definition Classes
- ExpType
-
def
extract: Option[Any]
- Attributes
- protected
- Definition Classes
- Exp
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
flat: C[A]
Only attempt to bank memory in a flattened manner
-
def
forcebank(N: Seq[Int], B: Seq[Int], alpha: Seq[Int]): C[A]
Provide explicit banking scheme that you want to use.
Provide explicit banking scheme that you want to use. If this scheme is unsafe, it will NOT crash. It will also assume only one duplicate
-
def
fresh: C[A] @scala.annotation.unchecked.uncheckedVariance
- Attributes
- protected
- Definition Classes
- ExpType
-
final
def
from(c: Any, warnOnLoss: Boolean, errorOnLoss: Boolean, isParam: Boolean, saturating: Boolean, unbiased: Boolean): C[A] @scala.annotation.unchecked.uncheckedVariance
- Definition Classes
- ExpType
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getFrom(c: Any, isParam: Boolean, saturating: Boolean, unbiased: Boolean): Option[(C[A] @scala.annotation.unchecked.uncheckedVariance, Boolean)]
- Definition Classes
- ExpType
-
final
def
hashCode(): Int
- Definition Classes
- Ref → AnyRef → Any
-
def
hierarchical: C[A]
Only attempt to bank memory hierarchically
-
def
infix_!=(that: Any): argon.lang.Bit
- Definition Classes
- Top
-
def
infix_==(that: Any): argon.lang.Bit
- Definition Classes
- Top
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
me: C[A] @scala.annotation.unchecked.uncheckedVariance
- Attributes
- protected
- Definition Classes
- ExpType
-
def
mustmerge: C[A]
Guarantee that it is safe to merge different duplicates.
Guarantee that it is safe to merge different duplicates. Only use this if you know exactly what you are doing!
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
neql(that: C[A]): argon.lang.Bit
- Definition Classes
- Top
- def nobank: C[A]
-
def
noblockcyclic: C[A]
Do not attempt to bank memory with block-cyclic schemes
-
def
noduplicate: C[A]
Do not attempt to bank memory by duplication
- def noflat: C[A]
- def nohierarchical: C[A]
-
def
nonbuffer: C[A]
Do not buffer memory
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
onlyblockcyclic: C[A]
Only attempt to bank memory with block-cyclic schemes
-
def
onlyduplicate: C[A]
Do not attempt to bank memory at all, and only use bank-by-duplication for all lanes of all readers
-
def
par(p: lang.I32): C[A]
Creates an alias of this SRAM with parallel access in the last dimension.
-
def
read(addr: Seq[lang.Idx], ens: Set[lang.Bit] = Set.empty): A
Returns the value at
addr
.Returns the value at
addr
. The number of indices should match the SRAM's rank. NOTE: Use the apply method if the SRAM's rank is statically known. -
def
size: lang.I32
Returns the total capacity (in elements) of this SRAM.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
final
def
toString(): String
- Definition Classes
- Ref → AnyRef → Any
-
def
toText: argon.lang.Text
- Definition Classes
- Top
-
def
unrelated(that: Any): Unit
- Attributes
- protected
- Definition Classes
- Top
-
def
value(c: Any): Option[(Any, Boolean)]
- Attributes
- protected
- Definition Classes
- ExpType
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
withCheck[T](x: ⇒ T)(eql: (T) ⇒ Boolean): Option[(T, Boolean)]
- Attributes
- protected
- Definition Classes
- ExpType
-
def
write(data: A, addr: Seq[lang.Idx], ens: Set[lang.Bit] = Set.empty): lang.Void
Updates the value at
addr
todata
.Updates the value at
addr
todata
. The number of indices should match the SRAM's rank. NOTE: Use the update method if the SRAM's rank is statically known.