0
그래서 나는 이벤트가 트리거 될 때 일부 하드 와이어 확률 벡터의 일부 비트를 설정하고 싶었다, 그래서 나는이 한 :
always @(some_event) begin
err_byte[0] = ($urandom()&65535 < 85) ? 1'b1 : 1'b0;
err_byte[1] = ($urandom()&65535 < 85) ? 1'b1 : 1'b0;
//....etc
내 err_byte 항상 있었다를 이 코드가 수천 번 트리거되었을지라도 (적어도 1 비트를 1로 설정하기에 충분 했음) 8'h00의 값. 정수 rndv를 선언하고 다음을 수행했습니다.
rndv = $urandom()&65535;
err_byte[0] = (rndv < 85) ? 1'b1 : 1'b0;
rndv = $urandom()&65535;
err_byte[1] = (rndv < 85) ? 1'b1 : 1'b0;
//etc...
갑자기 작동합니다. 이제 질문 : 도대체 여기서 무슨 일이 일어나고있는거야? 조건부 표현식 내에서 시스템 작업을 호출 할 수 없습니까?
참으로 그걸 알아 냈고 내 자신의 질문에 답하고 싶었습니다. – artemonster