재구성 가능한 소수점 필터 설계 예

권장 대상:

  • 장치: 알 수 없음

  • Quartus®: v9.1

author-image

기준

이 예에서는 인텔® DSP Builder Advanced Blockset에서 다중 채널 가변 속도 감소 필터를 구현하는 방법을 보여줍니다. 초음파 및 자기 공명 이미징(MRI)을 포함한 많은 의료 이미징 시스템의 경우 에코 데이터 샘플 속도를 줄이기 위해 재구성 가능한 소수점 필터가 필요합니다. 입력 데이터에는 샘플 속도가 고정되어 있습니다. 그러나 정수 감소율은 실시간으로 변경되어야 합니다. 또한, 총 필터 길이는 감소율에 따라 선형으로 증가합니다. 무선 통신 응용 프로그램 및 기타 시스템에도 유사한 요구 사항이 적용될 수 있습니다. 승수 수는 컴파일 시간에 고정되고 속도 증가로 증가하지 않기 때문에 polyphase 구조는 이러한 유형의 응용 프로그램에 매우 최적화되어 있습니다. 이 설계의 주요 특징은 가변 길이 지연 탭과 효율적인 필터 계수 스토리지입니다.

기능

이 설계 예에는 다음과 같은 주요 기능이 있습니다.

  • 샘플 속도 변경이 없는 경우를 포함한 임의 정수 감소율 지원
  • 단일 데이터 경로에서 모든 채널을 처리할 수 있을 만큼 클럭 속도가 높거나 하드웨어 중복이 없는 한 임의 채널 수, 임의 클럭 속도 및 입력 샘플 속도에 대한 지원
  • 감소율의 런타임 재구성 지원
  • 메모리의 모든 요금에 대한 계수를 사전 저장하는 대신 필터 계수 스토리지에 두 개의 메모리 뱅크를 사용하십시오. 이 기능을 사용하면 설계가 다른 은행의 계수를 읽는 동안 하나의 메모리 뱅크를 업데이트할 수 있습니다.
  • FIR(유한 임펄스 응답) 데이터 경로에서 스케일링 실시간 제어

기능 설명

설계는 직접 형태의 polyphase 소수점 필터 구조를 사용하며 그림 1에 표시됩니다. 주소 컨트롤러는 계수 메모리의 읽기 주소, 은행 선택기 및 가변 지연 탭의 쓰기 주소를 생성합니다. 계수는 온칩 RAM 블록에 저장됩니다. 가변 지연 탭도 듀얼 포트 메모리에 구현되며 포인터는 현재 감소율에 의해 제어됩니다. 고정된 수의 승수가 사용됩니다.

그림 1. 가변 속도 소수점의 블록 다이어그램.

이 예의 변수 탭 지연 블록에는 런타임 재구성 가능한 깊이가 있습니다. 따라서 온칩 RAM 블록을 사용하여 탄성 메모리로 구현됩니다. 각 지연 탭은 최악의 경우를 기준으로 할당됩니다. 지연 탭 블록을 통한 실제 지연 수는 현재 감소율을 기준으로 합니다. 단일 포인터 또는 주소 신호는 지연 탭에 대한 읽기 및 쓰기 작업 모두에 사용됩니다. 따라서 동일한 메모리 위치를 읽고 씁니다. 2포트 RAM은 오래된 메모리 내용을 읽기 위해 구성되므로 일정 수의 주기가 지연됩니다.

이 디자인은 두 개의 메모리 뱅크만 사용하며, 하나는 업데이트되고 다른 하나는 읽혀지고 있습니다. 런타임에 계수 재로드를 실현하려면 프로세서 인터페이스가 필요합니다.

이 설계의 설정 스크립트에서 클럭 속도, 감소율, 필터 길이, 승수 엔진 등을 정의했습니다. 비트 폭 관리도 매개변수화를 위해 스크립트로 작성됩니다. 주요 매개변수와 그 정의는 다음 표에 나와 있습니다.

모든 매개변수는 다른 디자인을 대상으로 수정할 수 있습니다. 업데이트된 매개변수를 기반으로 새로운 HDL 코드가 생성됩니다.

DSP Builder Advanced Blockset에서 리샘플링 필터 설계에 대한 자세한 내용은 A 623: DSP Builder Advanced Blockset을 사용하여 리샘플링 필터 구현(PDF)을참조하십시오.

이 예에 사용된 파일을 다운로드하십시오.

이 zip 다운로드 파일은 다음과 같습니다.

  • vardownsampler.mdl – 재구성 가능한 소수점 필터를 위한 DSP Builder Advanced Blockset 최상위 테스트 벤치 및 설계 파일
  • setup_vardownsampler.m – vardownsampler.mdl의 초기화 및 매개변수를 구성하는 MATLAB* 스크립트
  • vardownsampler_bare.mdl – vardownsampler.mdl 기반 설계 파일. 일부 비합성형 테스트 벤치 블록은 RTL(레지스터 전송 수준) 생성을 위해 제거됩니다.

프로젝트의 이 설계 예에 사용된 관련 기능에 대한 자세한 내용은 다음 으로 이동하십시오.

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.