해결된 질문
작성
·
72
·
수정됨
0
해당 코드에서 보면 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는 오류를 검출하고 교정하기 위해 주로 사용되는 오류 검출 및 정정 코드입니다. 귀하의 코드에서 질문하신 var1
과 var5
의 사용은 혼란을 줄 수 있지만, 몇 가지 관점에서 이해할 수 있습니다.
Pariy Bit와 데이터 비트의 역할:
코드에서 var1
은 주로 첫 번째 패리티 비트로 사용되고, d1
을 선언할 때 패리티 비트가 아닌 데이터 비트를 위치시키는 것으로 보입니다. 이는 Hamming 코드에서 패리티 비트를 계산할 때 데이터 비트를 균일하게 배치하기 위한 방법일 가능성이 큽니다.
코딩의 유연성:
Hamming 코드 구현에서 데이터 비트와 패리티 비트의 할당은 여러 방식으로 가능하며, var1
과 var5
가 경우에 따라 교차 적용되는 부분은 코드 설계자의 의도에 따라 다릅니다.
원활한 결괏값:
결괏값이 예상대로 나오는 것은, 해당 구현 방법이 데이터와 패리티 비트 간의 적절한 매핑을 통해 오류를 정확하게 찾고 수정하기 때문입니다. 각 비트가 교차할 수 있지만, 결과적으로 오류 탐지 및 수정에는 영향을 미치지 않는 경우도 있을 수 있습니다.
모듈 간 연결 이해:
decoder_ham
모듈과 Hamming_decoder
모듈의 연결을 검사해보세요. 변수명이나 위치가 전혀 일관되지 않아 보일 수 있지만, 전체적인 연결 및 참조 관계에서 이와 같은 변형이 있을 수 있습니다.
관련된 내용이나 동일한 주제로 된 질문을 찾아보시는 것도 도움이 될 수 있습니다:
- Hamming Code의 이해와 응용
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.