2017-05-23 3 views
1
class generator(options: Map[String, Any]) { 
    trait for_module extends abstractModule { 
    //generates trait with params 
    } 
    class my_module extends abstractModule with for_module 
    def exec = { 
    ... 
    Driver.execute(Array("-tn", "SomeName", "-td", "SomePath"),() => new my_module) 
    ... 

    } 
} 
object generator { 
    def main(args: Array[String]) = { 
    ... 
    val a = generator(someopts) 
    a.exec 
    } 
} 

このコードでは、-tnはトップレベルの回路の名前を変更する必要がありますが、トップレベルのファイル名のみを変更する必要があります。 "module generatormy_module"のようなトップモジュール名ですが、paramsから動的に名前を生成したいと考えています。chisel3の最上位の命名

datはバグですか?または、どのようにしてトップレベルのモジュール名を変更できますか?

PS:suggestNameメソッドも機能しません!

答えて

0

フラグ-tnは、最上位レベルの回路を変更するためのものではなく、指定するためにのみ使用し、ファイル名にデフォルトとして使用します。 Chiselモジュールの名前を指定する方法は、desiredNameメソッドをオーバーライドすることです。モジュールのコンストラクタへの引数でオーバーライドして、よりプログラマブルにすることができます。上記の例を変更する:

class generator(options: Map[String, Any]) { 
    trait for_module extends abstractModule { 
    //generates trait with params 
    } 
    class my_module(name: String) extends abstractModule with for_module { 
    override def desiredName = name 
    } 
    def exec = { 
    val topName = "SomeName" 
    Driver.execute(Array("-tn", topName, "-td", "SomePath"),() => new my_module(topName)) 
    ... 

    } 
} 
object generator { 
    def main(args: Array[String]) = { 
    ... 
    val a = generator(someopts) 
    a.exec 
    } 
} 
+0

これは機能します。ありがとう –

関連する問題