object GenerateExample extends App {
class Example extends Module {
val a = IO(Input(UInt(16384.W)))
val out = IO(Output(UInt(16384.W)))
out := (0 until 16384 by 4)
.map { i =>
a(i + 3, i)
}
.reduce(_ ## _)
}
new circt.stage.ChiselStage()
.execute(
args,
Seq(
circt.stage.CIRCTTargetAnnotation(circt.stage.CIRCTTarget.Verilog),
ChiselGeneratorAnnotation(() => new Example),
circt.stage.FirtoolOption("--lowering-options=disallowPackedArrays,disallowLocalVariables"),
circt.stage.FirtoolOption("--split-verilog"),
circt.stage.FirtoolOption("--dedup"),
circt.stage.FirtoolOption("--strip-debug-info"),
circt.stage.FirtoolOption("--extract-test-code"),
circt.stage.FirtoolOption("-o=test/")
)
)
}