ハードウェアの気になるあれこれスマートフォン用の表示で見るハードウェアの気になるあれこれ技術的に興味のあることを調べて書いてくブログ。Chip環境の仕組み解析メモの垂れ流し記事。前回見ていったGeneratorの中のgenerateFirrtlを見ていくのが良さそうだったので、今回からはそれを少しずつ見ていく。generateFirrtlトレイト"GeneratorApp"の挙動elaborateの処理generateFirrtlこのメソッドはGeneratorオブジェクトが継承するGeneratorAppトレイト内に定義されている。valとして宣言されている。valにして遅延評価している。circuitが評価されるcircuitの右辺のelaborateの引数でnames/paramsが参照されるparamsの評価が始まるという感じ。namesはGeneratorオブジェクト内部でlongNameの構築時に既に参照されているのでそのタイミングで値が評価される。上述の様にcircuitという変数にelaborateされた結果のFIRRTLが格納されている。下記のelaborateメソッドの第1引数は既出のParsedInputNamesにて引数より構築された文字列になっており、それがelaborateで生成されるFIRRTLのトップ階層のクラス名になっている。}上記のコードでは第一引数のfullTopModuleClassNameをJAVAのClass.forNameに入れることで、所望のトップ階層のモジュールを文字列から生成してそれをChiselのDriverに渡すことでFIRRTLを生成している。コードとしては以下のコードのMyModule部分をプログラム引数から生成できるようにしたイメージ。MyModule())}上記elaborateメソッドの第1引数はrunMain実行時にGeneratorオブジェクトに渡すプログラム引数の2番目/3番めの要素を結合したものになっており、READMEの手順に従ってmakeした時は以下のような文字列になっている。Chipのトップ階層のモジュールはsrc/main/scala/system/TestHarness.scalaの中のTestHarness()クラスということになる。mにマッチし、それがそのままtopに格納されている。次回はTestHarnessの中身を少し追ってみようと思う。Chip環境の仕組み解析メモの垂れ流し記事。技書博2にChisel本を出してきました月別アーカイブはてなブログをはじめよう!diningyo-kpuku-jougekiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。