인프런 커뮤니티 질문&답변

YEONG님의 프로필 이미지
YEONG

작성한 질문수

Verilog FPGA Program 1 (Arty A7-35T)

안녕하세요 SLVAE 컨트롤러에 대한 질문이 있습니다

해결된 질문

작성

·

289

0

page 184p에 라인 72~87까지의 설명이 이해가 가지 않아서 질문드립니다.

master에게서 받은 scl,sda의 Positive/Negative Edge 정보를 이용하여 데이터를 처리를 하는건 이해가 됩니다. 하지만 외부에서 입력되는 신호여서 플립플롭을 3번 거친 데이터를 사용한다는게 이해가 가지 않아 질문드립니다!

답변 1

0

alex님의 프로필 이미지
alex
지식공유자

경험적 지식으로 이해해 주시길 바랍니다. 사실 플립 프롭을 1번 거쳐도 되고, 심지어 그냥 바로 사용해도 됩니다.

시스템이 좀 복잡해지면 타이밍 오류가 발생하는 경우가 종종 있습니다. 로직적으로는 전혀 문제가 없는데, 보드에서 동작할 때 가끔씩 데이터가 튄다거나 오류가 발생할 때가 있습니다. 항상 문제가 발생하면 로직적인 문제라 생각해서 시뮬레이션으로 잡으면 되는데, 타이밍 오류는 시뮬레이션으로 잡아내기가 매우 어렵습니다.

그래서 경험적으로 이런 부분에 문제가 발생할 수 있니 이런 부분은 이렇게 하자라고 합니다. 그중에 하나가 외부에서 받아서 처리하는 신호들은 바로 사용하지 않고 플립플럽을 몇번 거쳐서 사용합니다. 또한 clock domain 이 바뀌는 부분도 그렇게 처리합니다.

앞으로 큰 시스템을 사용하다 보면 그러한 것들을 배우게 됩니다. 또한 경험 많으신 분들에게 배우게 됩니다.

FPGA를 하다보면 이러한 부분들이 매우 중요합니다.

 

YEONG님의 프로필 이미지
YEONG
질문자

네 감사합니다!

YEONG님의 프로필 이미지
YEONG

작성한 질문수

질문하기