inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Verilog 문법 관련 질문입니다.

해결된 질문

512

작성자 없음

작성한 질문수 0

1

안녕하세요! Verilog 문법 관련 질문드립니다.!

always @(a, b, sel) begin

if (sel) op = a;

else op=b;

end

이런 형태의 Code가 Latch를 유발할 수 있는 Code인가요?

if문 혹은 case문에서 조건을 따질 때, x 혹은 z가 condition으로 입력되는 경우

Latch가 생성되지 않도록 합성되는지 궁금합니다. (위 코드에서 op=b가 실행되는지 궁금합니다. )

 

 

fpga 임베디드 verilog-hdl 임베디드

답변 1

0

설계독학맛비

안녕하세요 :)

강의 에서 다루지 않은 개인 코드 답변은 부정확한 답변임을 서두에 말씀드립니다.

=====================

먼저 Sensitivity list 를 @() 안에 적는 방법은 잘 사용하지 않습니다. Verilog 2001 문법부터 @(*) 지원

이런 형태의 Code가 Latch를 유발할 수 있는 Code인가요?

위 코드만 보았을때는 full case 문으로 latch 가 발생될 것 같진 않습니다.

 

if문 혹은 case문에서 조건을 따질 때, x 혹은 z가 condition으로 입력되는 경우

Latch가 생성되지 않도록 합성되는지 궁금합니다. (위 코드에서 op=b가 실행되는지 궁금합니다. )

로직을 생성할때, x 는 0 혹은 1 인거라 모든 변수가 연결이 되었다. 는 가정이라면 위 코드라면 full case 라 latch 생성이 될 것 같진 않습니다.

z (high impedance) 는, 연결이 되지 않은 상태입니다. 즉 위의 변수가 아무것도 연결이 되지 않았다면 문제가 됩니다.

결론

위 코드만 보았을 때는 문제가 없지만, 코드에서 사용하는 변수가 어떻게 연결되느냐에 따라서 문제가 될 수 있다.

즐공하세요 :)

latency 개념 구현

1

89

3

비바도 all os버전

1

76

2

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

1

75

2

다운로드용량

1

74

2

비바도리눅스설치

1

83

2

전체path복사넣기

1

63

2

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

1

154

2

explorer.exe오류

1

107

3

mobaxterm설치오류

1

92

2

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

1

57

2

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

1

134

2

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

0

63

1

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

1

65

3

16장 mealy 설계.

1

74

2

14장 Cycle 관련, Testbench 코드.

1

64

2

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

1

60

1

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

1

69

2

build에러 질문

0

58

2

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

1

74

2

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

1

110

2

5장 DFF특성에 대한 질문

1

77

3

vivado linux 사용 이유.

1

139

2

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

1

105

2

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

1

92

2