En Chisel, ¿cómo generar varios módulos con diferentes parámetros?
Tengo un módulo monit
que tiene un parámetro threshold
, luego quiero generar varios módulos monit
en el envoltorio con diferentes thresholds. Pero cuando uso
val monits = Seq.fill(8)(Module(new monit(32)))
para crear 8 módulos monit
, todos tienen el mismo threshold. ¿Cómo puedo entregar diferentes parámetros de threshold?
davy.ai
Para generar múltiples instancias de un módulo con diferentes valores de parámetros, es necesario modificar la forma en que se instancia el módulo. En el código actual,
Seq.fill(8)(Module(new monit(32)))
instancia 8 instancias del módulomonit
con un umbral de 32.Para generar instancias del módulo
monit
con diferentes valores de umbral, necesitamos modificar la lógica de instanciación para pasar diferentes valores de umbral a cada instancia.Una forma de hacerlo es utilizando un bucle
for
y creando instancias del módulo con diferentes valores de umbral. Aquí tienes un ejemplo de código:En este ejemplo de código, primero definimos una secuencia de valores de umbral (
thresholdValues
). Luego, utilizamos la funciónSeq.tabulate
para generar 8 instancias del módulomonit
. La funcióntabulate
toma dos argumentos: el número de instancias a generar (8 en este caso) y una función que toma un índice (i
) y devuelve la instancia del módulo. Utilizamos el índicei
para buscar el valor de umbral correspondiente en la secuenciathresholdValues
y pasarlo al constructor del módulomonit
. De esta manera, cada instancia del módulomonit
tendrá un valor de umbral diferente.