2017-11-20 43 views
0
if(ci.busy) begin// writing 
    **dataout** = {dataout,string'(**ci.dout**)}; 
    $sformat(request,"%b",req.dout); 
    $fwrite(data, request); 
end 

여기서 ci.dout은 bit이고 dataout은 string입니다. 이것은 정적 캐스팅을 사용하여 비트를 문자열로 변환하는 데 사용했던 코드입니다. 하지만 테스트가 끝날 때 데이터 출력은 0입니다. 도움을 주시면 감사하겠습니다.시스템의 Verilog에서 문자열과 비트를 연결하는 방법은 무엇입니까?

+0

그것을 변수 및 예상 결과에 사용 된 값을 표시하는 데 도움이됩니다. –

답변

2

string'()을 사용하여 캐스팅하면 ci.dout이 문자열의 ASCII 코드로 사용됩니다. 예를 들어, string'(8'h41)는 "A"이며, string'(88'h48656C6C6F20576F726C64) 다음 중 하나가 당신을 위해 작동합니다

에 "Hello World"입니다 :

  1. dataout = {dataout,$sformatf("%b", ci.dout)};
  2. dataout = $sformatf("%s%b", dataout, ci.dout);
  3. $sformat(dataout, "%s%b", dataout, ci.dout);