오늘은 맑음

Verilog HDL random, random 신호 생성하기 본문

Digital logic

Verilog HDL random, random 신호 생성하기

자전거 타는 구구 2022. 4. 3. 23:43
반응형

Verilog HDL에서 random 숫자를 생성해보도록 하겠습니다.

 

Random 신호는 데이터를 랜덤으로 넣어주거나, 혹은 모듈의 동작 신호를 random으로 만들어서 테스트할 때 사용될 수 있습니다.

 

random신호를 만드는 방법은 두 가지가 있습니다.

 

1. $random : 32bit signed random value

2. $urandom : 32bit unsigned random value

3. $urandom_range(min-val,max-val) 

 

 그리고 random/urandom 뒤에 % 숫자를 사용하게 되면 입력한 숫자만큼 moduler 연산이 되어 필요한 만큼 random 데이터를 만들수 있습니다.

 

예시는 아래와 같습니다.

 

1. 3비트의 random 레지스터를 만들고  8로 모듈러한 unsigned random값을 할당합니다.

register에 random 값을 저장

2. random으로 8미만의 값들이 출력됩니다.

random 데이터

 

3. $urandom_range(min-val, max-val) (2022-07-20 추가)

 빵빵이아빠님의 댓글로 내용을 추가합니다.

urandom_range(0, 5)를 사용

 위와 같이 urandom_range를 사용을 한 결과 출력되는 rand_num값은 아래와 같습니다.

출력 결과

 min-val 이상, max_val 미만으로 ramdon값이 출력 되는 것을 확인할 수 있습니다.

반응형
Comments