トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2025-1-3

Yosysメモ


GitHubからcloneしたYosysのサンプルを参考にPassを作ってみると,
IDの引数でエラーがでてしまった.
これは,Ubuntu 22.04でaptでインストールしたYosysは0.9だったのに起因していて
その時点ではIDの引数にダブルクォーテーションが必要なのだった.
で,定義をみてみると,
0.9の定義が,kernel/yosys.hで,

#define ID(_str) \
	([]() { static YOSYS_NAMESPACE_PREFIX RTLIL::IdString _id(_str); return _id; })()

となっていたのに対して,
GitHubでcloneしたもの(0.48)は,kernel/yosys_common.hで,

#define ID(_id) ([]() { const char *p = "\\" #_id, *q = p[1] == '$' ? p+1 : p; \
        static const YOSYS_NAMESPACE_PREFIX RTLIL::IdString id(q); return id; })()

となっていた.なるほどねー.