작성
·
248
1
답변 2
1
$signed(a) + b; 로 실행한 결과 원하는 결과가 나오지 않습니다.
생각해보니 애초에 15를 signed로 만들어줄려면 비트가 하나 더 필요하군요...
정말 기본적인 생각을 안하고있었네요.. ㅠ
0
안녕하세요 :)
문 1 : $signed({1'b0,a})는 5비트 b는 4비트인데 피연산자의 비트길이가 다른데 연산이 가능한가요 ?
네 가능합니다. b 변수를 auto signed extention 해서 처리합니다. 하지만 이 부분의 rule 은 꼭 스스로 확인해보셔야 해요. Tool 마다 다를 수 있습니다. (최소한 Xilinx 의 tool 에서는 문제가 없다 보장해 드릴께요.)
correct가 5비트로 선언되었으므로 a에 0을 결합하여 5비트를 만들 필요없이 그냥 $signed(a) + b; 만 해줘도 되지 않나요?
직접 코드를 기입하셔서, 돌려보시면 답을 얻으실 수 있을 것 같아요. (환경은 전부 드렸습니다. ^^)
정말 그렇게 해도 될까요? 질문자님께서 답변으로 정리해서 남겨주시면 공부에 도움이 되실 것 같아요.
즐공하세요 :)