변수의 제약 조건을 한 번 한 번 설정하고 Specman에서 몇 번 생성 할 수 있습니까?
-
19-08-2019 - |
문제
동일한 제약 세트로 매번 같은 함수로 몇 번 생성하려는 변수가 있습니다. 제약 조건을 한 번 그리고 정의를 설정할 수 있습니다 gen
여러 번? 즉, 이것 대신 :
var a:uint;
gen a keeping {it in [100..120];};
// some code that uses a
.
.
.
gen a keeping {it in [100..120];};
// some code that uses a
.
.
.
gen a keeping {it in [100..120];};
// some code that uses a
// etc...
나는 이것을하고 싶다 :
var a:uint;
keep a in [100..120];
.
.
.
gen a;
// some code that uses a
.
.
.
gen a;
// some code that uses a
.
.
.
gen a;
// some code that uses a
// etc...
그렇게하고 싶다면 그렇게하고 있습니다 a
S 제약 조건 나는 한 번만해야합니다.
해결책
변수를 Enclosing Object의 인스턴스 멤버로 만들어이를 수행 할 수 있습니다.
a : uint;
keep a in [100..120];
my_method()@qualified_clk_rise_e is {
gen a;
...
gen a;
...
gen a;
};
Multiple My_Method ()가 동시에 동일한 개체에서 실행중인 경우이 구현은 스레드 안전이 아닙니다. 생성 된 'A'를 방법의 범위 :
var my_a : uint;
gen a;
my_a = a;
또는 'a'를 생성하는 메소드를 작성할 수 있습니다.
gen_a(): uint is {
gen result keeping { it in [100..120] };
};
my_method()@qualified_clock_rise_e is {
var a : uint;
...
a = gen_a();
...
a = gen_a();
...
a = gen_a();
...
};
제휴하지 않습니다 StackOverflow