inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

사칙연산 예제에서 질문드립니다.

312

royroy

작성한 질문수 8

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
a = 15; b = -8 wrong = a+b; correct = $signed({1'b0,a}) + b; 에서 질문 1 : $signed({1'b0,a})는 5비트 b는 4비트인데 피연산자의 비트길이가 다른데 연산이 가능한가요 ? correct가 5비트로 선언되었으므로 a에 0을 결합하여 5비트를 만들 필요없이 그냥 $signed(a) + b; 만 해줘도 되지 않나요?

fpga 임베디드 verilog-hdl

답변 2

1

royroy

$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; 만 해줘도 되지 않나요?

직접 코드를 기입하셔서, 돌려보시면 답을 얻으실 수 있을 것 같아요. (환경은 전부 드렸습니다. ^^)

정말 그렇게 해도 될까요? 질문자님께서 답변으로 정리해서 남겨주시면 공부에 도움이 되실 것 같아요.

 

즐공하세요 :)

latency 개념 구현

1

87

3

비바도 all os버전

1

72

2

초기화를 reset_n 이 '1'일 때가 아닌 '0' 일 때 실행시키는 이유 질문

1

71

2

다운로드용량

1

71

2

비바도리눅스설치

1

80

2

전체path복사넣기

1

63

2

Vivado 2025.2 리눅스 설치 후 실행 에러와 솔루션 (libxv_commontasks.so)

1

149

2

explorer.exe오류

1

106

3

mobaxterm설치오류

1

90

2

./build시, waveform 'divide color' 사용

1

57

2

Latch와 관련하여 (Time borrowing, Latch-based design)

1

130

2

clean 명령어가 안되는데, 따로 저장해줘야 하는지 궁금합니다.

0

63

1

안녕하세요 설치 관련 질문 드립니다.

1

64

3

16장 mealy 설계.

1

74

2

14장 Cycle 관련, Testbench 코드.

1

64

2

21강(16장) 초기값 설정이 적용되는 시점 질문

1

60

1

20강(15장) - 밀리 머신 관련하여 질문 드립니다.

1

68

2

build에러 질문

0

57

2

1장 ./build에서 에러가 나요

1

73

2

FPGA 강의 보드 문의 드립니다.

1

107

2

5장 DFF특성에 대한 질문

1

77

3

vivado linux 사용 이유.

1

137

2

메모리의 형태가 전체설계에 미치는 영향이 궁금합니다.

1

104

2

디스코드 멤버쉽 등업 관련 문제

1

92

2