해결된 질문
작성
·
74
·
수정됨
0
hamming encoder의 input data는 [16:1]인데 output은 [21:1]이 아닌 [1:21]으로 한 이유가 있을까요?
verilog에서 vector를 선언할 때에 [msb : lsb] , [lsb : msb] 두가지 방식을 혼용해서 쓰지 않는 것으로 알고 있었는데
testbench에도 이를 위해서 reverse 시키는 부분이 존재하여 hamming code logic의 특징인지 궁금하여 문의드립니다.
답변 1
0
안녕하세요, 답변 남겨드립니다. 해당 질문관련해서 카페에 동일한 내용이 있어서 다뤄드린바가 있어서 아래 내용 확인해보시면 좋을 것 같습니다.
https://cafe.naver.com/samcoach/247
말씀하신 것처럼 통신에 대한 부분을 처리하기 위해서 반전을 시킨 것인데, 부연 설명을 드리자면
일반적으로 코드를 반전시키는 경우는 아래와 같습니다.
코드에서 입력 메시지와 출력 메시지의 비트 순서를 반전시키는 것은 일반적으로 통신 시스템에서의 신호 전송 방식과 관련이 있습니다. 특히, 일부 통신 프로토콜에서는 데이터를 전송할 때 비트 순서가 반전되어 수신될 수 있습니다.
1. 전송 방식: 일부 시스템에서는 비트가 오른쪽에서 왼쪽으로 전송되는 경우가 있습니다. 이 경우 수신 측에서 비트 순서를 반전시켜야 원래의 데이터 형식을 복원할 수 있습니다.
2. 하드웨어 구현: 특정 하드웨어 아키텍처에서는 비트 순서가 반전된 상태로 데이터를 처리할 수 있습니다. 이 경우, 데이터의 일관성을 유지하기 위해 소프트웨어에서 반전 처리를 해 주어야 합니다.
3. 오류 검출 및 수정: 오류가 발생했을 때, 수신 측에서 데이터를 정확히 복원하기 위해 비트 순서를 반전시키는 과정이 필요할 수 있습니다. 이는 오류 수정 알고리즘의 일환으로 적용될 수 있습니다.
만약 이러한 반전이 실제 시스템의 요구사항에 따라 필요하지 않다면, 해당 코드를 생략해도 괜찮습니다. 그러나 이를 통해 특정 상황에 대한 유연성을 제공하고, 다양한 통신 환경에서의 데이터 처리 시나리오를 고려할 수 있습니다.