@@ -52,8 +52,8 @@ sealed class Vec[T <: Data] private[chisel3] (gen: => T, length: Int)
5252
5353  override  def  toString :  String  =  super [VecImpl ].toString
5454
55-   def  apply (p : UInt )(implicit  sourceInfo : SourceInfo ):  T  =  do_apply(p)
56-   def  do_apply (p : UInt )(implicit  sourceInfo : SourceInfo ):  T  =  _applyImpl(p)
55+   def  apply (p : UInt )(using  sourceInfo : SourceInfo ):  T  =  do_apply(p)
56+   def  do_apply (p : UInt )(using  sourceInfo : SourceInfo ):  T  =  _applyImpl(p)
5757
5858  /**  A reduce operation in a tree like structure instead of sequentially 
5959    * @example  An adder tree 
@@ -76,7 +76,7 @@ sealed class Vec[T <: Data] private[chisel3] (gen: => T, length: Int)
7676    redOp :   (T , T ) =>  T ,
7777    layerOp : (T ) =>  T  =  (x : T ) =>  x
7878  )(
79-     implicit  sourceInfo : SourceInfo 
79+     using  sourceInfo : SourceInfo 
8080  ):  T  =  _reduceTreeImpl(redOp, layerOp)
8181}
8282
@@ -93,7 +93,7 @@ object VecInit extends VecInitImpl with SourceInfoDoc {
9393    * element 
9494    * @note  output elements are connected from the input elements 
9595    */  
96-   def  apply [T  <:  Data ](elts : Seq [T ])(implicit  sourceInfo : SourceInfo ):  Vec [T ] =  _applyImpl(elts)
96+   def  apply [T  <:  Data ](elts : Seq [T ])(using  sourceInfo : SourceInfo ):  Vec [T ] =  _applyImpl(elts)
9797
9898  /**  Creates a new [[Vec ]] composed of the input [[Data ]] nodes. 
9999    * 
@@ -103,7 +103,7 @@ object VecInit extends VecInitImpl with SourceInfoDoc {
103103    * element 
104104    * @note  output elements are connected from the input elements 
105105    */  
106-   def  apply [T  <:  Data ](elt0 : T , elts : T * )(implicit  sourceInfo : SourceInfo ):  Vec [T ] =  _applyImpl(elt0, elts : _* )
106+   def  apply [T  <:  Data ](elt0 : T , elts : T * )(using  sourceInfo : SourceInfo ):  Vec [T ] =  _applyImpl(elt0, elts : _* )
107107
108108  /**  Creates a new [[Vec ]] of length `n` composed of the results of the given 
109109    * function applied over a range of integer values starting from 0. 
@@ -117,7 +117,7 @@ object VecInit extends VecInitImpl with SourceInfoDoc {
117117    n :   Int 
118118  )(gen : (Int ) =>  T 
119119  )(
120-     implicit  sourceInfo : SourceInfo 
120+     using  sourceInfo : SourceInfo 
121121  ):  Vec [T ] =  _tabulateImpl(n)(gen)
122122
123123  /**  Creates a new 2D [[Vec ]] of length `n by m` composed of the results of the given 
@@ -134,7 +134,7 @@ object VecInit extends VecInitImpl with SourceInfoDoc {
134134    m :   Int 
135135  )(gen : (Int , Int ) =>  T 
136136  )(
137-     implicit  sourceInfo : SourceInfo 
137+     using  sourceInfo : SourceInfo 
138138  ):  Vec [Vec [T ]] =  _tabulateImpl(n, m)(gen)
139139
140140  /**  Creates a new 3D [[Vec ]] of length `n by m by p` composed of the results of the given 
@@ -152,7 +152,7 @@ object VecInit extends VecInitImpl with SourceInfoDoc {
152152    p :   Int 
153153  )(gen : (Int , Int , Int ) =>  T 
154154  )(
155-     implicit  sourceInfo : SourceInfo 
155+     using  sourceInfo : SourceInfo 
156156  ):  Vec [Vec [Vec [T ]]] =  _tabulateImpl(n, m, p)(gen)
157157
158158  /**  Creates a new [[Vec ]] of length `n` composed of the result of the given 
@@ -162,7 +162,7 @@ object VecInit extends VecInitImpl with SourceInfoDoc {
162162    * @param  gen  function that takes in an element T and returns an output 
163163    * element of the same type 
164164    */  
165-   def  fill [T  <:  Data ](n : Int )(gen : =>  T )(implicit  sourceInfo : SourceInfo ):  Vec [T ] =  _fillImpl(n)(gen)
165+   def  fill [T  <:  Data ](n : Int )(gen : =>  T )(using  sourceInfo : SourceInfo ):  Vec [T ] =  _fillImpl(n)(gen)
166166
167167  /**  Creates a new 2D [[Vec ]] of length `n by m` composed of the result of the given 
168168    * function applied to an element of data type T. 
@@ -177,7 +177,7 @@ object VecInit extends VecInitImpl with SourceInfoDoc {
177177    m :   Int 
178178  )(gen : =>  T 
179179  )(
180-     implicit  sourceInfo : SourceInfo 
180+     using  sourceInfo : SourceInfo 
181181  ):  Vec [Vec [T ]] =  _fillImpl(n, m)(gen)
182182
183183  /**  Creates a new 3D [[Vec ]] of length `n by m by p` composed of the result of the given 
@@ -195,7 +195,7 @@ object VecInit extends VecInitImpl with SourceInfoDoc {
195195    p :   Int 
196196  )(gen : =>  T 
197197  )(
198-     implicit  sourceInfo : SourceInfo 
198+     using  sourceInfo : SourceInfo 
199199  ):  Vec [Vec [Vec [T ]]] =  _fillImpl(n, m, p)(gen)
200200
201201  /**  Creates a new [[Vec ]] of length `n` composed of the result of the given 
@@ -211,7 +211,7 @@ object VecInit extends VecInitImpl with SourceInfoDoc {
211211    len :   Int 
212212  )(f :     (T ) =>  T 
213213  )(
214-     implicit  sourceInfo : SourceInfo 
214+     using  sourceInfo : SourceInfo 
215215  ):  Vec [T ] =  _iterateImpl(start, len)(f)
216216}
217217
@@ -222,32 +222,32 @@ trait VecLike[T <: Data] extends VecLikeImpl[T] with SourceInfoDoc {
222222
223223  /**  Creates a dynamically indexed read or write accessor into the array. 
224224    */  
225-   def  apply (p : UInt )(implicit  sourceInfo : SourceInfo ):  T 
225+   def  apply (p : UInt )(using  sourceInfo : SourceInfo ):  T 
226226
227227  /**  Outputs true if p outputs true for every element. 
228228    */  
229-   def  forall (p : T  =>  Bool )(implicit  sourceInfo : SourceInfo ):  Bool  =  _forallImpl(p)
229+   def  forall (p : T  =>  Bool )(using  sourceInfo : SourceInfo ):  Bool  =  _forallImpl(p)
230230
231231  /**  Outputs true if p outputs true for at least one element. 
232232    */  
233-   def  exists (p : T  =>  Bool )(implicit  sourceInfo : SourceInfo ):  Bool  =  _existsImpl(p)
233+   def  exists (p : T  =>  Bool )(using  sourceInfo : SourceInfo ):  Bool  =  _existsImpl(p)
234234
235235  /**  Outputs true if the vector contains at least one element equal to x (using 
236236    * the === operator). 
237237    */  
238-   def  contains (x : T )(implicit  sourceInfo : SourceInfo , ev : T  <:<  UInt ):  Bool  =  _containsImpl(x)
238+   def  contains (x : T )(using  sourceInfo : SourceInfo , ev : T  <:<  UInt ):  Bool  =  _containsImpl(x)
239239
240240  /**  Outputs the number of elements for which p is true. 
241241    */  
242-   def  count (p : T  =>  Bool )(implicit  sourceInfo : SourceInfo ):  UInt  =  _countImpl(p)
242+   def  count (p : T  =>  Bool )(using  sourceInfo : SourceInfo ):  UInt  =  _countImpl(p)
243243
244244  /**  Outputs the index of the first element for which p outputs true. 
245245    */  
246-   def  indexWhere (p : T  =>  Bool )(implicit  sourceInfo : SourceInfo ):  UInt  =  _indexWhereImpl(p)
246+   def  indexWhere (p : T  =>  Bool )(using  sourceInfo : SourceInfo ):  UInt  =  _indexWhereImpl(p)
247247
248248  /**  Outputs the index of the last element for which p outputs true. 
249249    */  
250-   def  lastIndexWhere (p : T  =>  Bool )(implicit  sourceInfo : SourceInfo ):  UInt  =  _lastIndexWhereImpl(p)
250+   def  lastIndexWhere (p : T  =>  Bool )(using  sourceInfo : SourceInfo ):  UInt  =  _lastIndexWhereImpl(p)
251251
252252  /**  Outputs the index of the element for which p outputs true, assuming that 
253253    * the there is exactly one such element. 
@@ -259,7 +259,7 @@ trait VecLike[T <: Data] extends VecLikeImpl[T] with SourceInfoDoc {
259259    * true is NOT checked (useful in cases where the condition doesn't always 
260260    * hold, but the results are not used in those cases) 
261261    */  
262-   def  onlyIndexWhere (p : T  =>  Bool )(implicit  sourceInfo : SourceInfo ):  UInt  =  _onlyIndexWhereImpl(p)
262+   def  onlyIndexWhere (p : T  =>  Bool )(using  sourceInfo : SourceInfo ):  UInt  =  _onlyIndexWhereImpl(p)
263263}
264264
265265/**  Base class for Aggregates based on key values pairs of String and Data
0 commit comments