작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
415
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가 실행되는지 궁금합니다. )
답변 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) 는, 연결이 되지 않은 상태입니다. 즉 위의 변수가 아무것도 연결이 되지 않았다면 문제가 됩니다.
결론
위 코드만 보았을 때는 문제가 없지만, 코드에서 사용하는 변수가 어떻게 연결되느냐에 따라서 문제가 될 수 있다.
즐공하세요 :)