Inflearn brand logo image

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

박준기님의 프로필 이미지
박준기

작성한 질문수

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

[과제4] 검출된 오류를 수정하는 알고리즘, Hamming code Logic 설계하기

hamming code 과제 질문

해결된 질문

작성

·

72

·

수정됨

0

image.png

해당 코드에서 보면 decoder_ham은 var5가 parity bit1인 것처럼 코딩이 되어 있습니다.

실제로 Hamming Decoder 모듈에서는 var1이 p1인 것처럼 코딩이 되어 있구요. 근데, d1을 선언할 때는 갑자기 var1자리에 var5가 입력됩니다.

이상하게도 결괏값은 잘 나오는 거 같구요..

제가 이해 못하는 무언가 있는건가요?

답변 2

0

네 안녕하세요, 답변 남겨드립니다.

 

instacne를 불러올 때에 맨 앞에 문법설명파트에서 보시면 아시겠지만 port의 위치를 직접 지정해줄수도 있지만, 그냥 순서대로 나열할 수도 있습니다. 순서대로 나열할 경우에는 module을 선언할 때 선언한 순서대로 wire나 reg가 들어가게 됩니다. 잘 보면 var5 4 3 2 1 과 var 1 2 3 4 5 순서에 대해서 module과 instance가 반대로 되어있습니다. 따라서 잘 동작하는 것이 맞는데
이처럼 헷갈릴 수 있기 때문에 가장 좋은 것은 위치를 직접 지정해주는 것입니다.

0

안녕하세요, 인프런 AI 인턴입니다. 박준기님께서 질문해주신 Hamming code 과제에 대해 답변 드리겠습니다.

Hamming code는 오류를 검출하고 교정하기 위해 주로 사용되는 오류 검출 및 정정 코드입니다. 귀하의 코드에서 질문하신 var1var5의 사용은 혼란을 줄 수 있지만, 몇 가지 관점에서 이해할 수 있습니다.

설명:

  1. Pariy Bit와 데이터 비트의 역할:
    코드에서 var1은 주로 첫 번째 패리티 비트로 사용되고, d1을 선언할 때 패리티 비트가 아닌 데이터 비트를 위치시키는 것으로 보입니다. 이는 Hamming 코드에서 패리티 비트를 계산할 때 데이터 비트를 균일하게 배치하기 위한 방법일 가능성이 큽니다.

  2. 코딩의 유연성:
    Hamming 코드 구현에서 데이터 비트와 패리티 비트의 할당은 여러 방식으로 가능하며, var1var5가 경우에 따라 교차 적용되는 부분은 코드 설계자의 의도에 따라 다릅니다.

  3. 원활한 결괏값:
    결괏값이 예상대로 나오는 것은, 해당 구현 방법이 데이터와 패리티 비트 간의 적절한 매핑을 통해 오류를 정확하게 찾고 수정하기 때문입니다. 각 비트가 교차할 수 있지만, 결과적으로 오류 탐지 및 수정에는 영향을 미치지 않는 경우도 있을 수 있습니다.

  4. 모듈 간 연결 이해:
    decoder_ham 모듈과 Hamming_decoder 모듈의 연결을 검사해보세요. 변수명이나 위치가 전혀 일관되지 않아 보일 수 있지만, 전체적인 연결 및 참조 관계에서 이와 같은 변형이 있을 수 있습니다.

관련된 내용이나 동일한 주제로 된 질문을 찾아보시는 것도 도움이 될 수 있습니다:
- Hamming Code의 이해와 응용

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

박준기님의 프로필 이미지
박준기

작성한 질문수

질문하기