以下の内容はhttps://msyksphinz.hatenablog.com/entry/2022/07/25/040000より取得しました。


Yosysの使い方を勉強する (6. 自作のPassでModuleを表示する)

まずはYosysに簡単なPassを作ってみる。Passに対してモジュールの名前をリストアップするPassを作ってみよう。

デザインに登録されているModuleの名前を取得する。

  • yosys/passes/tests/mypass.cc
  void execute(std::vector<std::string> args, RTLIL::Design* design) override
  {
    log ("Hello!\n");
    auto modules = design->modules();
    for (auto iter = modules.begin(); iter != modules.end(); iter++) {
      log("Module Name = %s\n", (*iter)->name.c_str());
    }

  }

テストしてみる。以下のデザインを読み込ませる。

module adder
(
 input logic [31:0]   in0,
 input logic [31:0]   in1,
 output logic [31: 0] out
);

assign out = in0 + in1;

endmodule // adder


module adder2
(
 input logic [31:0]   in0,
 input logic [31:0]   in1,
 input logic [31:0]   in2,
 output logic [31: 0] out
);

assign out = in0 + in1 + in2;

endmodule // adder2

結果は以下のようになった。それぞれのモジュールに対して名前を取得できた。

Successfully finished Verilog frontend.
Hello!
Module Name = $abstract\adder2
Module Name = $abstract\adder



以上の内容はhttps://msyksphinz.hatenablog.com/entry/2022/07/25/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14