강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của wwa99819313
wwa99819313

câu hỏi đã được viết

Basic SystemVerilog Testbench ( Xác minh thiết kế mạch )

Ngẫu nhiên hóa trong OOP - 3 (Sử dụng Constraint)

Inline constraints 관련 질문

Đã giải quyết

Viết

·

33

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의 충돌을 피하기 위한 것인지 궁금합니다.

질문 읽어주셔서 감사합니다.

verilog-hdlsystem-verilogverificationsystem-verilog-dpi

Câu trả lời 1

1

MetaEncore님의 프로필 이미지
MetaEncore
Người chia sẻ kiến thức

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 로 해야 한다고 말씀드린 것입니다.

답변이 되셨는지요?

 

xo님의 프로필 이미지
xo
Người đặt câu hỏi

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

Hình ảnh hồ sơ của wwa99819313
wwa99819313

câu hỏi đã được viết

Đặt câu hỏi