Commit 70fece6f authored by Lukas Sommer's avatar Lukas Sommer Committed by Jaco A. Hofmann
Browse files

Add --skipEvaluation option for HLS task/job;

parent 3b689598
......@@ -191,7 +191,8 @@ final case class HighLevelSynthesisJob(
private val _implementation: String,
private val _architectures: Option[Seq[String]] = None,
private val _platforms: Option[Seq[String]] = None,
private val _kernels: Option[Seq[String]] = None) extends Job("hls") {
private val _kernels: Option[Seq[String]] = None,
skipEvaluation : Option[Boolean] = None) extends Job("hls") {
/** Returns the selected HLS tool implementation. */
lazy val implementation: HighLevelSynthesizer.Implementation = HighLevelSynthesizer.Implementation(_implementation)
......
......@@ -70,7 +70,7 @@ protected object HighLevelSynthesis extends Executor[HighLevelSynthesisJob] {
if (avgCC.isEmpty && k.testbenchFiles.length > 0) {
logger.warn("executed HLS with co-sim for {}, but no co-simulation report was found", k)
}
Some(new ImportTask(zip, t, k.id, _ => signal.release(), avgCC, None, None, 2)(cfg))
Some(new ImportTask(zip, t, k.id, _ => signal.release(), avgCC, job.skipEvaluation, None, 2)(cfg))
}
case _ => None
}
......
......@@ -35,7 +35,8 @@ package object json {
(JsPath \ "Implementation").readNullable[String].map (_ getOrElse "VivadoHLS") ~
(JsPath \ "Architectures").readNullable[Seq[String]] ~
(JsPath \ "Platforms").readNullable[Seq[String]] ~
(JsPath \ "Kernels").readNullable[Seq[String]]
(JsPath \ "Kernels").readNullable[Seq[String]] ~
(JsPath \ "Skip Evaluation").readNullable[Boolean]
) (HighLevelSynthesisJob.apply _)
implicit val highLevelSynthesisJobWrites: Writes[HighLevelSynthesisJob] = (
......@@ -43,7 +44,8 @@ package object json {
(JsPath \ "Implementation").write[String] ~
(JsPath \ "Architectures").writeNullable[Seq[String]] ~
(JsPath \ "Platforms").writeNullable[Seq[String]] ~
(JsPath \ "Kernels").writeNullable[Seq[String]]
(JsPath \ "Kernels").writeNullable[Seq[String]] ~
(JsPath \ "Skip Evaluation").writeNullable[Boolean]
) (unlift(HighLevelSynthesisJob.unapply _ andThen (_ map ("HighLevelSynthesis" +: _))))
/* HighLevelSynthesisJob @} */
......
......@@ -37,8 +37,11 @@ private object HighLevelSynthesisParser {
private val jobid = identity[HighLevelSynthesisJob] _
private def skipEval: Parser[(String, Boolean)] =
(longOption("skipEvaluation", "SkipEval") ~ ws) map { case s => (s, true) }
private def options: Parser[HighLevelSynthesisJob => HighLevelSynthesisJob] =
(implementation | architectures | platforms).rep map (opt =>
(implementation | architectures | platforms | skipEval).rep map (opt =>
(opt map (applyOption _) fold jobid) (_ andThen _))
private def applyOption(opt: (String, _)): HighLevelSynthesisJob => HighLevelSynthesisJob =
......@@ -46,6 +49,7 @@ private object HighLevelSynthesisParser {
case ("Implementation", i: String) => _.copy(_implementation = i)
case ("Architectures", as: Seq[String @unchecked]) => _.copy(_architectures = Some(as))
case ("Platforms", ps: Seq[String @unchecked]) => _.copy(_platforms = Some(ps))
case ("SkipEval", se : Boolean) => _.copy(skipEvaluation = Some(se))
case o => throw new Exception(s"parsed illegal option: $o")
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment