인프런 커뮤니티 질문&답변
Inline constraints 관련 질문
해결된 질문
작성
·
30
0
안녕하세요, 좋은 강의 잘 수강하고 있습니다.
inline constraints 설명에 있는 예제 코드에서,
obj_a.randomize() with {x > 3 && x < 10} 관련하여 몇 가지 질문이 있습니다.
(1) 위와 같이 적용되는 randomize는 class demo 자체가 아닌, obj_a에 할당된 object memory에만 적용되는 것으로 이해했는데, 이해한 내용이 맞는지 궁금합니다.
(2) class에 정의된 x > 0; x <= 5;의 constraint와, inline constraint x>3 && x<10;이 같이 적용되는 경우, 최종적으로 x>3 && x<=5로 solve 되는 것이 맞는지 궁금합니다.
(3) 마지막으로 local::y에 대해 언급하신 건, constraint 조건을 걸 때, class의 y와 program block에 있는 y의 충돌을 피하기 위한 것인지 궁금합니다.
질문 읽어주셔서 감사합니다.
답변 1
1
xo 님,
수강해 주셔서 감사드립니다.
(1) 네, 맞습니다. obj_a 의 randomize()를 call 하므로, 해당 obj_a 에만 해당된 것입니다.
(2) 네, 맞습니다. inline constraint 가 더해지면, 기존에 있던 모든 constraint와 inline constraint가 모두 만족하는 space로 constraint가 solving이 되게 됩니다.
(3) inline constraint 를 작성할 때, 가령 y 라고 언급한다면, 예에서는 default로 obj_a 에 있는 y 를 의미하게 됩니다. 하지만 inline constraint가 속해 있는 initial begin ~ end block 안에 y 라는 변수가 있을 수 있습니다. 만약에 이 initial block의 y 를 참조하고 싶다면, local::y 로 해야 한다고 말씀드린 것입니다.
답변이 되셨는지요?





이해됐습니다. 답변 주셔서 감사합니다!