DAC macro
ビットのリストの名前とそのサイズ、および整数変数の名前を入力として取得する a を作成しようとしています。リスト内のすべての要素は、変数内のすべてのビット (両方とも同じ長さ) と等しくなるように制約する必要があります。つまり、(リスト名list_of_bits
と変数名foo
で長さが4
の場合) マクロの出力は次のようになります。
keep list_of_bits[0] == foo[0:0];
keep list_of_bits[1] == foo[1:1];
keep list_of_bits[2] == foo[2:2];
keep list_of_bits[3] == foo[3:3];
私のマクロのコードは次のとおりです。
define <keep_all_bits'exp> "keep_all_bits <list_size'exp> <num'name> <list_name'name>" as computed {
for i from 0 to (<list_size'exp> - 1) do {
result = appendf("%s keep %s[%d] == %s[%d:%d];",result, <list_name'name>, index, <num'name>, index, index);
};
};
私が得るエラー:
*** Error: The type of '<list_size'exp>' is 'string', while expecting a
numeric type
...
for i from 0 to (<list_size'exp> - 1) do {
<list_size'exp>
を文字列として解釈するのはなぜですか? ご協力ありがとうございました