[SystemVerilog] 시스템베릴로그 랜덤 변수 제약 - unique와 foreach, constraint 충돌 예시
SystemVerilog에서는 제약 랜덤화(Constrained Randomization)를 사용하면 여러 가지 테스트 패턴을 자동으로 만들 수 있다.그중에서 내가 이번에 따로 정리해두고 싶은 건 unique constraint랑 foreach constraint 두 가지다.1. unique 제약배열/집합 요소들이 모두 다른 값을 갖도록 보장주로 포트 ID, Address 매핑, 루트 선택 등 중복이 허용되지 않는 경우에 유용class my_item; rand bit [3:0] port_id[4]; // 4개의 포트 ID (0~15) // 모든 포트 ID는 서로 달라야 한다 constraint c_unique { unique { port_id }; } // 포트 ID 값은 0~7까지만 허..
2025.09.13