From 5c929a91c26920b50d4887e0058c895d1a91b280 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Povi=C5=A1er?= Date: Tue, 21 May 2024 14:57:37 +0200 Subject: [PATCH] bbox_derive: Write help --- passes/cmds/bbox_derive.cc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/passes/cmds/bbox_derive.cc b/passes/cmds/bbox_derive.cc index e4fcb7963..90ce2ac49 100644 --- a/passes/cmds/bbox_derive.cc +++ b/passes/cmds/bbox_derive.cc @@ -29,6 +29,28 @@ struct BboxDerivePass : Pass { log("\n"); log(" bbox_derive [-base ] [-naming_attr ] [selection]\n"); log("\n"); + log("As part of the assembly of the design hierarchy done by the 'hierarchy' command,\n"); + log("specializations of parametric modules are derived on demand: for each choice of\n"); + log("parameter values appearing in the design, a copy of the parametric module is\n"); + log("derived which is specialized to that choice.\n"); + log("\n"); + log("This derivation process ignores blackboxes and whiteboxes. To supplement, this\n"); + log("'bbox_derive' command can be used to request the derivation of modules based on\n"); + log("blackbox or whitebox instances appearing in the design, which is desirable in\n"); + log("certain use cases. Only the selected cells are considered as the instances that\n"); + log("steer the derivation process.\n"); + log("\n"); + log(" -base \n"); + log(" instead of deriving the module that directly corresponds to each blackbox\n"); + log(" instance, derive a specialization of (this option applies\n"); + log(" to all selected blackbox cells)\n"); + log("\n"); + log(" -naming_attr \n"); + log(" once a specialization is derived, use the value of the module attribute\n"); + log(" for a name which should be used for the derived module (this\n"); + log(" replaces the internal Yosys naming scheme in which the names of derived\n"); + log(" modules start with '$paramod$')\n"); + log("\n"); } void execute(std::vector args, RTLIL::Design *d) override {