特定の回路の各強接続コンポーネントを個別のサブモジュールに配置する手順を作成しようとしています。
そこで、Yosys の SCC パスに関数を追加して、各 SCC をサブモッドに追加しようとしました。機能は次のとおりです。
void putSelectionIntoParition (RTLIL::Design *design,
std::vector<pair<std::string,RTLIL::Selection>>& SelectionVector)
{
int p_count = 0;
for (std::vector<pair<std::string,RTLIL::Selection>>::iterator it = SelectionVector.begin();
it != SelectionVector.end(); ++it)
{
design->selection_stack[0] = it->second;
design->selection_stack[0].optimize(design);
std::string command = "submod -name ";
command.append(it->first);
Pass::call_on_selection(design, it->second, command);
++p_count;
}
}
ただし、私のコードは正しく動作しません。問題は、私が使用する「選択」プロセスにあると思います。yosysソース内に、セルのベクトル(および名前のサブモジュール)を受け入れてサブモジュールに入れるユーティリティ/ APIがあるかどうか疑問に思っていました。