2

E (specman) で、リストである変数を宣言し、それらの長さを修正したいと考えています。

構造体のメンバーに対して行うのは簡単です:

thread[2] : list of thread_t;

一方、関数内の「通常の」変数の場合、上記は機能せず、次のようなことをしなければなりません:

var warned : list of bool;
gen warned keeping {
    it.size() == 5;
};

固定サイズのリストを宣言するより良い方法はありますか?

4

2 に答える 2

4

あなたが持っているようなハードキープは初期化時にサイズを修正するだけですが、要素は後で追加または削除される可能性があります、あなたはこの状態から守ろうとしていますか?要素が後で追加または削除されないことを保証するために私が考えることができる唯一の方法は、サイズ!=所定の量で同期されたイベントを発行することです。

event list_size_changed is true (wanted.size() != 5) @clk;

私が提供できる他の唯一のものは、ハードキープのための少しの構文糖衣です:

var warned : list of bool;
keep warned.size() == 5;
于 2008-09-01T04:05:48.810 に答える
-1

私はspecmanについて何も知りませんが、固定サイズのリストは配列であるため、どこかを指すかもしれません.

于 2008-08-26T18:28:56.863 に答える