KR20210043495A - 디지털 신호 프로세서 및 동작 방법 - Google Patents

디지털 신호 프로세서 및 동작 방법 Download PDF

Info

Publication number
KR20210043495A
KR20210043495A KR1020207036837A KR20207036837A KR20210043495A KR 20210043495 A KR20210043495 A KR 20210043495A KR 1020207036837 A KR1020207036837 A KR 1020207036837A KR 20207036837 A KR20207036837 A KR 20207036837A KR 20210043495 A KR20210043495 A KR 20210043495A
Authority
KR
South Korea
Prior art keywords
filter
shift register
lookup table
impulse response
memory
Prior art date
Application number
KR1020207036837A
Other languages
English (en)
Other versions
KR102663975B1 (ko
Inventor
스테빤 프띠똠
스테빤 프띠Œc
Original Assignee
멘타
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 멘타 filed Critical 멘타
Publication of KR20210043495A publication Critical patent/KR20210043495A/ko
Application granted granted Critical
Publication of KR102663975B1 publication Critical patent/KR102663975B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00323Delay compensation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Communication Control (AREA)

Abstract

유연한 디지털 신호 프로세서 모듈은 곱셈기 및 가산기를 포함하는 필터 유닛을 포함하고, 여기서 곱셈기는 메모리 및 시프트 레지스터 룩업 테이블로부터 입력을 수신한다. 디지털 신호 프로세서 모듈은 메모리로부터의 적절한 필터 계수들 및 시프트 레지스터 룩업 테이블로부터의 데이터 값들을 제공함으로써 FIR 또는 IIR 필터와 같은 디지털 필터를 구현할 수도 있다. 옵션적 상태 머신은 메모리 시프트 레지스터 룩업 테이블의 어드레싱의 동기화를 보장할 수도 있으며, 디지털 신호 프로세서 모듈의 여러 인스턴스 사이에서 이들은 특정 필터 구현에 필요하다. 제안된 아키텍처는 필터 구현 이외의 동작들이 지원되는 추가 동작 모드를 제공한다.

Description

디지털 신호 프로세서 및 동작 방법
본 발명은 디지털 신호 프로세서 아키텍처에 관한 것이다.
디지털 신호 프로세서는 디지털 필터, 압축 등과 같은 디지털 신호 프로세싱 동작에 대한 전용 지원을 제공하는 전문화된 디지털 전자 모듈이다.
디지털 신호 프로세서 기능은 "시스템 인 패키지 (systems in a package)" 유닛의 일부로서, 또는 FPGA 아키텍처의 특수 블록으로서 자립형 마이크로프로세서를 포함하여 다양한 포맷들로 제공될 수도 있다.
FPGA들은 프로그래밍가능 로직 디바이스의 일 타입이다. 그들은 일반적으로 표준 프로그래밍가능 로직 블록에 기반하며, 다수가 다양한 기능들을 구현하기 위해 함께 배열된다.
도 1 은 종래 기술에서 공지된 것과 같은 FPGA 시스템의 일 예를 개략적으로 도시한다.
도 1 에 도시된 것과 같이, FPGA 칩 (10) 은 다수의 로직 블록들 (11) 을 포함한다. 칩은 또한, 다수의 입력/출력 포트들 (12) 을 포함한다. 이들 로직 블록들 (11) 과 입력/출력 포트들 (12) 을 접속하는 것은 다수의 트랙들 (14) 이다. 이들 트랙의 접합 포인트들에는 스위치 박스들로 지칭될 수도 있는 다수의 프로그래밍가능한 라우팅 영역 (13) 이 제공된다. 이들 프로그래밍가능한 라우팅 영역들에서, 각각의 스위치와 접속된 비트 셀에 저장된 논리 값의 제어 하에, 임의의 쌍의 교차하는 트랙들을 선택적으로 접속할 수 있는 스위치들이 제공된다. 비트 셀 메모리 값들은 비휘발성 메모리로부터 시스템 가동시 세팅된다. 따라서, 스위치 메모리들에서의 값들을 요구되는 것과 같이 세팅함으로써, 임의의 로직 블록의 임의의 접속들은 임의의 다른 로직 블록, 또는 임의의 입력/출력 포트 (12) 의 접속들에 커플링될 수 있다. 유사하게 어떤 하나의 입력/출력 포트는 다른 입력/출력 포트에 접속될 수도 있다. 따라서, 각각의 로직 블록의 동작을 정의하기 위한 메모리 유닛들 및 로직 블록들 간에 적절한 접속들을 확립하기 위한 스위치 메모리들 (13) 을 적절히 구성함으로써, 임의의 요구되는 기능이 구현될 수 있다.
FPGA 의 기본 철학은 표준 로직 블록의 적절한 접속들 및 적절한 로직 값들에 의해 임의의 디지털 동작을 구현하는 가능성에 기초하지만, 특정 시나리오에서 이러한 일반적인 접근방식은 주어진 기능을 구현하는데 사용되는 칩 표면 면적 및 원하는 기능을 적용하기 위한 동작에서 소비된 에너지에 관하여 매우 비효율적이다. 따라서, 많은 최신 FPGA 아키텍처는 어떤 특정 기능을 지원하도록 특별히 설계된 회로들을 포함하는, 특수 블록들 (15) 을 포함한다.
특정 FPGA 아키텍처는 디지털 신호 프로세싱 동작들을 지원하기 위해 이러한 특수 블록들 (15) 을 제공한다.
도 2 는 종래 기술에 알려진 것과 같은 디지털 신호 프로세싱 블록을 도시한다.
도 2 에 도시된 바와 같이, 각각 릴레이 (213 및 214) 에 의해 버퍼링되는, 2 개의 입력들 (211 및 212) 을 포함하는 블록 (200) 이 제공된다. 입력들 (211 및 212) 은 추가 릴레이 (221) 를 통해 가산기 (230) 에 출력을 제공하는 곱셈기 (220) 에 값들을 제공한다. 가산기는 추가 릴레이 (216) 를 통해 제 2 입력 (215) 을 수신하고, 추가 릴레이 (231) 를 통해 블록 출력 (217) 을 방출한다. 구현 세부사항들에 따라 다양한 릴레이들이 사용되거나 사용되지 않을 수도 있다.
위에서 설명한 것과 같은 FPGA 아키텍처의 블록으로서, DSP 블록은 FPGA 의 다른 블록에 의해 제공되는 임의의 적절한 로직에 접속될 수도 있다. 특히, 전술한 바와 같이 일반적으로 표준 논리 블록들이 될 이들 다른 블록들은, 원하는 동작에 필요할 수도 있는 어떤 논리 입력이라도 제공하도록 구성될 수도 있다. 적절한 계수 값들을 하나의 입력 (211 또는 212) 에 공급하고 적절하게 타이밍된 일련의 데이터 값들을 다른 입력에 공급하며, 그리고 출력 값들을 누산하도록 추가 논리 블록들을 구성함으로써, 필터 및 기타 기능들이 구현될 수도 있다.
이러한 접근 방식들의 예는 예를 들어, Xilinx Virtex 5 또는 Xilinx Virtex 4 FPGA 아키텍처들의 사용자 가이드에서 찾을 수도 있다.
특히, 전술한 바와 같은 종래 기술의 접근 방식은 DSP 아키텍처의 효율성을 다소 향상시키는 반면, 특정 DSP 동작들의 구현을 지원하기 위한 외부 로직에 대한 의존은 결과적인 회로가 필요한 공간, 소비된 에너지, 클록 분배 등의 측면에서 준최적으로 유지된다는 것을 의미한다. 높은 수준의 다기능성을 유지하면서 보다 통합된 기능을 제공하는 DSP 아키텍처를 제공하는 것이 바람직하다.
본 발명에 따르면, 제 1 양태에서 디지털 필터, 시프트 레지스터 룩업 테이블 및 필터 메모리를 포함하는 프로그래밍가능한 디지털 신호 프로세서가 제공되며, 여기서 시프트 레지스터 룩업 테이블은 제 1 동작 모드에서 입력 데이터를 디지털 필터에 제공하도록 결합되고, 필터 메모리는 제 1 동작 모드에서 필터 계수들을 디지털 필터에 제공하도록 결합되며, 필터 메모리 및 시프트 레지스터 룩업 테이블의 출력들은 대응하는 필터 계수들과 입력 데이터를 생성하여 함께 원하는 필터 구성을 구현하도록 동기화된다.
제 1 양태의 전개에서, 시프트 레지스터 룩업 테이블은 시프트 레지스터를 포함하고, 상기 시프트 레지스터는 단일 연속 시프트 레지스터로서 또는 복수의 독립적으로 동작가능한 시프트 레지스터들로서 동작가능하도록 구성된다.
제 1 양태의 전개에서, 프로그래밍가능한 디지털 신호 프로세서는 상태 머신을 더 포함하고, 상태 머신은 시프트 레지스터 룩업 테이블 및 필터 메모리에 어드레싱 값들을 제공한다.
제 1 양태의 전개에서, 프로그래밍가능한 어드레싱 값들은 시프트 레지스터 룩업 테이블 및 필터 메모리에 대한 단일 어드레스를 포함하며, 이에 의해 시프트 레지스터 룩업 테이블 및 필터 메모리에 저장된 값들은, 단일 어드레스가 제 1 동작 모드에서 디지털 필터에 대하여 대응하는 계수들 및 입력 데이터를 참조하도록 구성된다.
제 1 양태의 전개에서, 제 2 동작 모드에서 시프트 레지스터 룩업 테이블에 저장된 값들은 디지털 필터에 의한 것이 아닌 프로세싱을 위해 출력된다.
제 1 양태의 전개에서, 제 2 동작 모드에서 시프트 레지스터 룩업 테이블은 곱셈기 입력 레지스터로서 사용된다.
제 1 양태의 전개에서, 디지털 필터는 유한 임펄스 응답 필터의 컴포넌트를 구성한다.
제 1 양태의 전개에서, 디지털 필터는 피드백 구성에서 제 1 유한 임펄스 응답 필터 및 제 2 유한 임펄스 응답 필터를 포함하는 무한 임펄스 응답 필터의 컴포넌트를 구성하며, 여기서 상태 머신은 무한 임펄스 응답 필터를 구현하기 위해 제 1 유한 임펄스 응답 및 제 2 유한 임펄스 응답의 출력들의 결합을 코디네이트하는 인에이블 신호들을 제공한다.
제 1 양태의 전개에서, 디지털 신호 프로세서는 복수의 룩업 테이블을 포함하는 FPGA 아키텍처로 구현되며, 각 룩업 테이블의 구성은 구성 비트 스트림으로 시스템 시작시 프로그래밍된 하나 이상의 개별 메모리 유닛들에 의해 정의되며, 여기서 필터 메모리의 값들은 또한 구성 비트 스트림에 의해 프로그래밍된다.
본 발명에 따르면, 제 2 양태에서, 디지털 신호 프로세서 동작을 수행하는 방법이 제공되며, 상기 방법은 제 1 동작 모드에서 디지털 신호 프로세서에 데이터를 출력하도록 시프트 레지스터 룩업 테이블을 어드레싱하는 단계, 제 1 동작 모드에서 디지털 필터에 계수들을 제공하도록 필터 메모리를 어드레싱하는 단계, 및 계수를 사용하여 입력된 데이터에 디지털 필터 동작을 수행하는 단계를 포함한다.
제 2 양태의 전개에서, 방법은 단일 어드레스 값이 제 1 동작 모드에서 디지털 필터에 대한 대응하는 계수들 및 입력 데이터를 참조하도록, 시프트 레지스터 룩업 테이블 및 필터 메모리를 구성하는 추가 단계를 포함하고, 따라서 제 1 동작 모드에서 디지털 신호 프로세서에 계수들을 출력하도록 시프트 레지스터 룩업 테이블을 어드레싱하는 단계, 및 제 1 동작 모드에서 디지털 필터에 입력 데이터를 제공하도록 필터 메모리를 어드레싱하는 단계는 단일 어드레스 값을 사용하여 수행된다.
제 2 양태의 전개에서, 디지털 필터 동작은 유한 임펄스 응답 필터 동작이다.
제 2 양태의 전개에서, 디지털 필터 동작은 피드백 값들에 기초하여 제 1 유한 임펄스 응답 동작 및 제 2 유한 임펄스 응답 동작을 포함하는 무한 임펄스 응답 필터 동작이고, 상기 방법은 무한 임펄스 응답 필터 결과를 획득하기 위해 제 1 유한 임펄스 응답 동작 및 제 2 유한 임펄스 응답 동작의 결과들의 결합을 코디네이트하는 인에이블 신호들을 제공하는 추가 단계를 포함한다.
본 발명에 따르면, 제 3 양태에서, 제 2 양태의 단계들을 구현하도록 적응된 명령들을 포함하는 컴퓨터용의 프로그램이 제공된다.
본 발명의 상기의 및 다른 장점들은 첨부된 도면들을 참조하여 지금부터 설명될 것이다.
도 1 은 종래 기술에서 공지된 것과 같은 FPGA 시스템의 일 예를 개략적으로 도시한다.
도 2 는 종래 기술에 알려진 것과 같은 디지털 신호 프로세싱 블록을 도시한다.
도 3 은 제 1 실시형태에 따른 프로그래밍가능한 디지털 신호 프로세서를 도시한다.
도 4 는 제 2 실시형태에 따른 프로그래밍가능한 디지털 신호 프로세서를 도시한다.
도 5 는 일 실시형태에 따른 유한 임펄스 응답 필터의 병렬 구현을 나타낸다.
도 6 은 일 실시형태에 따른 무한 임펄스 응답 필터의 병렬 구현을 나타낸다.
도 7 은 일 실시형태에 따른 필터를 사용하여 구현된 부호있는 곱셈기를 도시한다.
도 8 은 일 실시형태에 따른 디지털 신호 프로세서 동작을 수행하는 방법을 나타낸다.
도 3 은 제 1 실시형태에 따른 프로그래밍가능한 디지털 신호 프로세서를 도시한다.
도시된 바와 같이, 프로그래밍가능한 디지털 신호 프로세서 (300) 는 디지털 필터 (310), 시프트 레지스터 룩업 테이블 (320), 및 메모리 (330) 를 포함한다. 메모리는 RAM 또는 ROM 디바이스, 캐스케이드 레지스터 등과 같은 랜덤 액세스 메모리를 포함할 수도 있다. 시프트 레지스터 룩업 테이블 (320) 은 제 1 동작 모드에서 디지털 필터 (310) 에 입력 데이터를 제공하도록 결합되고, 필터 메모리 (330) 는 제 1 동작 모드에서 디지털 필터 (310) 에 필터 계수들을 제공하도록 결합된다. 필터 메모리와 시프트 레지스터 룩업 테이블의 출력들은 대응하는 필터 계수들과 입력 데이터를 생성하여 함께 원하는 필터 구성을 구현하도록 동기화된다.
디지털 필터는 도 2 와 관련하여 실질적으로 전술한 바와 같이, 가능하면 추가 레지스터들과 함께, 데이터 값과 계수 값을 곱하도록 구성된 곱셈기 및 연속 값들의 누산을 위한 가산기를 포함한다. 추가 지연, 합산, 다중화 또는 다른 컴포넌트들을 통합하여 기능을 확장할 수도 있다.
도시된 바와 같이, 시프트 레지스터 룩업 테이블 (320) 은 4 개의 플립 플롭 (321, 322, 323, 324) 을 포함하는 시프트 레지스터를 포함한다. 오직 4 개의 플립 플롭만이 도시되지만, 임의의 수의 플립 플롭들이 제공될 수도 있음을 인식할 것이다. 시프트 레지스터의 길이는 도 3 의 DSP 의 단일 구현에 의해 프로세싱될 수도 있는 계수들의 최대 수에 대응하므로, 필터에 의해 처리될 수 있는 계수들의 수, 즉, 필터 탭들의 수에 기초하여 플립 플롭들의 수를 선택할 수도 있고, 이는 수행될 수도 있는 필터 동작들의 복잡성을 반영하는 필터의 기본 설계 제약이 된다. 플립 플롭들의 편의상 수는 특정 실시 예에서 32 일 수도 있다.
유사하게, 메모리 (330) 의 어드레스들의 수는 필터에 의해 처리될 수 있는 계수들의 수, 즉 필터 탭들의 수와 동일할 수도 있다. 다른 실시형태들에서, 메모리 (330) 의 어드레스들의 수는 필터에 의해 처리될 수 있는 계수들의 수, 즉 필터 탭들의 수 미만일 수도 있다. 다른 실시형태들에서, 메모리 (330) 의 어드레스들의 수는 필터에 의해 처리될 수 있는 계수들의 수, 즉 필터 탭들의 수보다 많을 수도 있다.
각 메모리 어드레스에 저장된 데이터 워드의 길이는 입력 데이터 버스의 폭과 동일할 수도 있다. 24 비트 입력 버스는 24 비트 계수와 24 개의 시프트 레지스터들 및 멀티플렉서들을 병렬로 포함하는 시프트 레지스터 룩업 테이블을 제안한다. 그 후에, 필터는 필터링 동작에서 2 개의 24 비트 값들의 곱셈을 수행한다.
동작에서, 필터링을 위한 이진 데이터 값들의 연속적인 스트림은 입력 (301) 에 도달하고, 이는 이후 설명되는 바와 같이 프로세싱이 진행됨에 따라 시프트 레지스터 (321, 322, 323, 324) 를 통해 점진적으로 클록된다. 시프트 레지스터 (321, 322, 323, 324) 의 플립 플롭들에 로딩된 주어진 값들의 세트에 대해, 필터의 탭들의 수까지 시프트 레지스터 (321, 322, 323, 324) 의 각 플립 플롭은 순서대로 어드레싱되고, 그 값은 데이터 값으로서 필터 (310) 에 전달된다.
한편, 필터의 탭들 수까지 시프트 레지스터 (321, 322, 323, 324) 의 각 플립 플롭이 어드레싱됨에 따라, 메모리 (330) 가 동시에 어드레싱되고, 이에 의해 어드레싱된 메모리 위치는 어드레싱된 플립 플롭에 대응하는 필터 계수를 포함하고, 결과적인 출력은 계수 값들의 세트로서 필터 (310) 에 전달된다.
따라서, 시프트 레지스터로부터의 어드레싱된 값은 메모리 (330) 에 의해 제공된 대응하는 계수들을 사용하여 필터 (310) 에 의해 프로세싱된다. 필터의 출력이 누산되고, 그 후에 시스템은 시프트 레지스터 (321, 322, 323, 324) 의 다음 플립 플롭 및 메모리 (330) 의 대응하는 위치를 어드레싱하는 것을 진행한다.
이를 기반으로, 필터의 탭들의 수까지 시프트 레지스터의 각 데이터 값은 개별 계수 세트에 따라 프로세싱되고, 결과들은 필터의 출력에 누산된다. 필터의 탭들 수까지 시프트 레지스터의 각 플립 플롭이 어드레싱되면, 시프트 레지스터는 예를 들어, 클록 버스 (302) 를 활성화시킴으로써 클록되므로, 시프트 레지스터에서 각 플립 플롭의 값은 그 이웃에서 통과되며, 새로운 데이터 값이 데이터 입력 (301) 으로부터 시프트 레지스터의 제 1 플립 플롭 (321) 으로 클록되고, 시프트 레지스터의 최종 플립 플롭의 값이 폐기된다.
시프트 레지스터 (321, 322, 323, 324) 의 각 플립 플롭을 필터의 탭들의 수까지 차례로 어드레싱하고, 메모리 (330) 가 제공한 대응하는 계수들을 사용하여 필터 (310) 에 의해 프로세싱하는 프로세스가 그 후에, 새로운 값들의 세트에 대해 다시 시작된다.
이 프로세스는 입력 채널 (301) 의 모든 입력 값이 프로세싱될 때까지 무기한으로 계속된다.
도 4 는 제 2 실시형태에 따른 프로그래밍가능한 디지털 신호 프로세서를 도시한다.
도 3 과 관련하여 설명된 바와 같이, 메모리 (330) 의 계수 값들 및 시프트 레지스터 룩업 테이블 (420) 의 데이터 값의 어드레싱은 동기화된 방식으로 수행되어, 필터의 특정 탭 위치에 대응하여 데이터가 시프트 레지스터 룩업 테이블 (420) 로부터 획득될 때, 그 탭 위치에 대한 적절한 계수가 메모리 (330) 로부터 획득된다. 이러한 동기화는 예를 들어, 한편으로는 메모리 (330) 및 다른 한편으로는 시프트 레지스터 룩업 테이블 (420) 에 대한 개별 어드레스 값들을 제공하는 매핑 테이블 등을 참조하여, 다양한 방식으로 달성될 수도 있다는 것을 인식할 것이다.
메모리 (330) 시프트 레지스터 룩업 테이블 (420) 은 동일한 어드레스 값이 메모리 (330) 의 대응하는 값들 및 시프트 레지스터 룩업 테이블 (420) 의 데이터 값을 가리키도록 구성될 수도 있다는 것이 또한 인식될 것이다.
따라서, 디지털 필터 (310), 시프트 레지스터 룩업 테이블 (420) 및 메모리 (330) 를 포함하는 프로그래밍가능한 디지털 신호 프로세서 (400) 가 제공되며, 여기서 시프트 레지스터 룩업 테이블 (420) 은 제 1 동작 모드에서 입력 데이터를 디지털 필터 (310) 에 제공하도록 결합되고, 필터 메모리 (330) 는 제 1 동작 모드에서 필터 계수들을 디지털 필터 (310) 에 제공하도록 결합되며, 필터 메모리 (330) 및 시프트 레지스터 룩업 테이블 (420) 의 출력들은 대응하는 필터 계수들과 입력 데이터를 생성하여 함께 원하는 필터 구성을 구현하도록 동기화된다.
도 4 는 클록 입력 (302) 및 탭 수 입력 (441) 을 수신하는 카운터 (440) 가 제공되는, 동기화를 달성하는 하나의 방법을 나타낸다. 카운터 (440) 에는 추가로, 현재 카운트 값을 출력하는 출력이 제공된다. 카운터 (440) 는 보다 일반적으로 동기화 상태 머신의 일부 또는 전체를 구성하는 것으로 볼 수도 있다. 카운트 값은 어드레스 값으로서 메모리 (330) 및 시프트 레지스터 룩업 테이블 (420) 에 공급된다. 이에 기초하여, 계수 값이 순차적인 위치로 메모리 (330) 에 로딩되어, 카운드 값이 증분함에 따라 연속적인 탭 위치들에 대응하는 연속적인 계수 값들이 선택된다. 같은 이유로, 카운트 값이 증분함에 따라, 연속적인 탭 위치들에 대응하는 시프트 레지스터의 연속적인 플립 플롭이 멀티플렉서 (425) 에 의해 선택된다. 따라서, 카운트 값은 동기화된 방식으로 메모리 (330) 및 시프트 레지스터 룩업 테이블 (420) 을 어드레싱하는 역할을 한다. 카운터는 탭 수 카운트 (구현 세부사항들에 따라, 시프트 레지스터 룩업 테이블 (420) 의 플립 플롭들의 수까지의 임의의 수일 수도 있음) 에 도달하면 그 카운트를 다시 시작하도록 구성된다. 특정 변형에서, 카운터에는 오버플로우 출력이 제공될 수도 있으며, 이는 카운트 값이 탭 수 입력에 도달할 때 미리 결정된 값을 출력한다. 이 출력은 예를 들어 아래에서 더 자세히 설명하는 것과 같이, 다수의 프로그래밍가능한 디지털 신호 프로세서들의 동작들을 코디네이트하는데 사용될 수도 있다.
도시된 바와 같이, 도 4 의 배열에서, 멀티플렉서 (425) 는 2 개의 서브-멀티플렉서들 (425a 및 425b) 로 구현되며, 이들 각각은 시프트 레지스터 (321-324) 의 출력들의 일부를 수신한다. 각각의 서브-멀티플렉서 (425a 및 425b) 는 시프트 레지스터 (321-324) 의 출력들의 절반을 수신할 수도 있거나, 또는 시프트 레지스터 (321-324) 의 출력들은 임의의 다른 방식으로 2 개의 서브-멀티플렉서들 사이에 분배될 수도 있다. 2 개의 서브-멀티플렉서들 (425a 및 425b) 의 출력들은 제 3 서브-멀티플렉서 (435c) 에 의해 자체적으로 선택되므로, 3 개의 서브-멀티플렉서들 (425a, 425b, 425c) 은 도 3 의 멀티플렉서 (325) 와 논리적으로 등가이다. 추가 멀티플렉서 (426) 는 플립 플롭 (322) 과 플립 플롭 (323) 사이에 도시된 바와 같이, 시프트 레지스터 출력들이 하나의 서브-멀티플렉서 또는 다른 서브-멀티플렉서로 전송되는 지점에 대응하는, 시프트 레지스터 (321-324) 의 지점에 제공된다. 하나의 선택 값으로, 멀티플렉서 (426) 는 플립 플롭 (323) 의 입력을 플립 플롭 (322) 의 출력에 결합하여 단일 시프트 레지스터를 동작 상태로 유지한다. 다른 선택 값으로, 멀티플렉서 (426) 는 대안적인 입력에 유리한 플립 플롭 (322) 의 출력으로부터 플립 플롭 (323) 의 입력을 결합 해제하여, 예를 들어 아래 도 7 을 참조하여 설명된 바와 같이 2 개의 개별 시프트 레지스터들을 제공한다.
도시된 바와 같이, 도 4 의 필터 (310) 는 필터 (310) 로부터의 연속적인 출력들을 누산하도록 제공될 수도 있는, 전술한 것과 같은 누산기 (405) 를 더 포함한다. 이에 의해, 예를 들어, 상기 표시한 바와 같이 개별 데이터 값들 및 계수 값들을 사용하여 획득된 바와 같이, 각 탭 위치에 대해 필터 (310) 에 의해 출력된 값들을 누산함으로써 전체 유한 임펄스 응답 필터가 구현될 수도 있다.
이와 같이, 프로그래밍가능한 디지털 신호 프로세서는 시프트 레지스터 룩업 테이블 및 메모리에 어드레싱 값들을 제공하는 상태 머신 (440) 을 더 포함할 수도 있으며, 여기서 단일 어드레스는 제 1 동작 모드에서 디지털 필터에 대한 대응하는 계수들 및 입력 데이터를 참조한다.
특정 실시형태들에서, 도 3 또는 도 4 와 관련하여 설명된 것과 같은 DSP 모듈은 FPGA 아키텍처에서 DSP 블록으로서 구현될 수도 있다. 각각의 DSP 블록은 도 3 또는 도 4 와 관련하여 설명된 것과 같은 하나 이상의 DSP 모듈들을 포함할 수도 있다. 각 FPGA 는 FPGA 아키텍처의 일반적인 용도에 적합한 표준 논리 블록들 및 다른 유형의 블록뿐만 아니라 임의의 수의 DSP 블록들을 포함할 수도 있다. 이와 같이, 디지털 신호 프로세서는 복수의 룩업 테이블을 포함하는 FPGA 아키텍처로 구현될 수도 있고, 각 룩업 테이블의 구성은 구성 비트 스트림으로 시스템 시작시 프로그래밍된 하나 이상의 개별 메모리 유닛들에 의해 정의되며, 여기서 필터 메모리의 값들은 또한 구성 비트 스트림에 의해 프로그래밍된다.
도 5 는 일 실시형태에 따른 유한 임펄스 응답 필터의 병렬 구현을 나타낸다.
준-병렬 구현에 기반한 FIR 필터는 예를 들어 도 3 또는 도 4 를 참조하여 설명된 것과 같이 탭의 수가 단일 DSP 모듈에 의해 제공되는 탭들의 수보다 크거나, 또는 주파수 요건이 샘플링 사이클 당 여러 탭들을 계산하도록 구성된 다수의 DSP 모듈들로 더 잘 충족될 수 있다는 맥락에서 사용될 수도 있다.
예를 들어, 3 개의 DSP들을 갖는 12 탭 필터가 사용되는 경우, 다음 분해가 적용될 수도 있다:
Figure pct00001
상기 n 은 각 탭의 인덱스이다
Cn 은 각 탭 n 의 계수이다
Xn 은 각 탭 n 의 데이터 값이다
각각의 서브-항 (sub-term) 은 동일한 구조를 나타내며, 3 개의 캐스케이드 DSP 의 시퀀스를 사용하여 구현할 수 있다 (서브-항들은 4 개 곱들의 합이다).
이에 기초하여, 도 5 에 도시된 바와 같이, 예를 들어 위의 도 3 또는 도 4 를 참조하여 설명된 것에 대응하는 제 1 DSP 모듈 (510), 예를 들어 위의 도 3 또는 도 4 를 참조하여 설명된 것에 대응하는 제 2 DSP 모듈 (520), 및 예를 들어 위의 도 3 또는 도 4 를 참조하여 설명된 것에 대응하는 제 3 DSP 모듈 (530) 이 제공된다. 각각의 DSP 모듈 (510, 520, 530) 은 동기화 엘리먼트, 시프트 레지스터 룩업 테이블 엘리먼트 및 메모리 엘리먼트뿐만 아니라, 필터 엘리먼트의 곱셈기 및 가산기를 포함하여 개략적으로 도시된다.
이러한 3 개의 DSP 모듈들의 각각은 예를 들어, 도 4 의 엘리먼트 (400) 를 참조하여 설명한 바와 같이 FIR 필터로 구성된다. 3 개의 DSP 모듈들의 각각은 시스템에 의해 전체적으로 구현될 필터의 총 탭들의 순차적인 서브세트를 처리하도록 구성되며, 따라서 3 개의 DSP 모듈들 모두에 걸쳐 구현된 탭들의 총 수는 최종 필터의 탭들의 수이다.
제 1 DSP 모듈 (510) 은 데이터 입력 (513) 을 수신한다. 이 동일한 데이터는 입력 (523) 에서 제 1 DSP 모듈의 시프트 레지스터 룩업 테이블의 출력으로부터 제 2 DSP 모듈 (520) 로, 그리고 제 2 DSP 모듈의 시프트 레지스터 룩업 테이블의 출력으로부터 입력 (533) 에서 제 3 DSP 모듈 (530) 로 공급되며, 따라서 개별 DSP 모듈들의 시프트 레지스터 룩업 테이블이 지연 라인을 구성하여, 제 2 DSP 모듈 (520) 은 제 1 DSP 모듈 (510) 이후 n 개 사이클들에서 데이터를 수신하고, 제 3 DSP 모듈 (520) 은 제 1 DSP 모듈 (510) 이후 2n 개 사이클들에서 데이터를 수신한다.
유사하게, 제 1 DSP 모듈 (510) 은 동기화 신호 (515) 를 수신한다. 플립 플롭 (516 및 526) 에 의해 표현된 지연 라인을 통해, 대응하는 동기화 신호 (525) 가 제 2 DSP 모듈 (520) 에 공급되고 대응하는 동기화 신호 (535) 가 제 3 DSP 모듈 (530) 에 공급되어, 제 2 DSP 모듈 (520) 은 제 1 DSP 모듈 (510) 이후 하나의 사이클에서 인에이블되고 제 3 DSP 모듈 (520) 은 제 1 DSP 모듈 (510) 이후 2 개의 사이클들에서 인에이블된다. 제 1 및 제 2 DSP 모듈들 (510 및 520) 의 출력들은 제 2 DSP 모듈의 가산기 (521) 에서 합산되고, 가산기 (521) 및 제 3 DSP 모듈 (531) 의 출력들은 제 3 DSP 모듈의 가산기 (531) 에서 합산된다. 가산기 (531) 의 출력은 모듈 (540) 에 의해 전체 필터 프로세싱 사이클에 걸쳐 누산되며, 이는 위에서 논의된 바와 같이, 도 4 를 참조하여 설명된 것과 같은 엘리먼트 (405) 와 같은 추가 DSP 모듈의 누산 유닛을 사용하여 구현될 수도 있다.
이 접근법에 의해, 임의의 크기의 FIR 은 전술한 바와 같이 적절한 수의 DSP 모듈들을 접속하고 적절한 계수들 및 동기화 신호들을 제공함으로써 구현될 수도 있다. 임의의 원하는 수의 DSP 모듈이 이러한 방식으로 접속될 수도 있음을 이해할 것이다.
도 6 은 일 실시형태에 따른 무한 임펄스 응답 필터의 병렬 구현을 나타낸다.
IIR 필터를 설명하는 일반 공식은:
Figure pct00002
공식은
Figure pct00003
를 사용하여 간략화될 수도 있다.
제 1 합은 Nb 탭들의 FIR 필터를 정의한다. 이 FIR 필터는 샘플링 입력에 적용가능하다.
제 2 합은 Na 탭들의 FIR 필터를 정의한다. 이 FIR 필터는 IIR 필터 출력에 적용가능하다. 이것은 필터의 피드백 루프이다.
이에 기초하여, 도 6 에 도시된 바와 같이, 예를 들어 위의 도 3 또는 도 4 를 참조하여 설명된 것에 대응하는 제 1 DSP 모듈 (610), 예를 들어 위의 도 3 또는 도 4 를 참조하여 설명된 것에 대응하는 제 2 DSP 모듈 (620), 및 예를 들어 위의 도 3 또는 도 4 를 참조하여 설명된 것에 대응하는 제 3 DSP 모듈 (630) 이 제공된다.
이러한 3 개의 DSP 모듈들 중 2 개의 모듈들 (610 및 630) 은 예를 들어, 도 4 의 엘리먼트 (400) 를 참조하여 설명한 바와 같이 FIR 필터로 구성된다.
구체적으로, 제 1 DSP 모듈 (610) 은 Nb 탭들의 FIR 필터를 정의한다. 이 FIR 필터는 샘플링 입력 (601) 에 적용가능하다.
제 3 DSP 모듈 (630) 은 Na 탭들의 FIR 필터를 정의한다. 이 FIR 필터는 IIR 필터 출력에 적용가능하다. 이것은 필터의 피드백 루프이다.
FIR 필터는 샘플링 사이클 당 하나의 결과를 생성하기에 충분히 빠르게 동작하며, 따라서 양자의 결과들을 동기화된 방식으로 누산하는 것이 가능하다. 양자의 필터들은 완전히 등록되어 있지만, 샘플링 주파수보다 훨씬 높은 주파수에서 작동하므로, 1 개의 샘플링 사이클에서 최종 결과를 획득할 수 있다. 필터가 더 클수록, 클록 비율이 가장 큰 필터의 탭들 수와 직접 관련되기 때문에, IIR 필터의 효율성이 저하된다.
필터 동기화를 간단히 해결하기 위해, 본 실시형태에서 다음의 제한들이 적용된다:
제 1 DSP 모듈 (610) 에 의해 구현된 직접 FIR 서브-필터는 예를 들어, 도 4 를 참조하여 설명된 것과 같은 단일 DSP 접근 방식을 사용하여 단일 DSP 모듈에서 구현될 수 있는 탭들의 수로 제한되며, 모든 구성에서 동일한 파이프라이닝 지연을 허가한다.
제 3 DSP 모듈 (630) 에 의해 구현되는 루프백 FIR 서브-필터는 제 1 DSP 모듈 (610) 의 탭들의 수의 절반으로 제한되고, 예를 들어, 도 4 를 참조하여 설명된 바와 같이 단일 DSP 접근 방식을 사용하여 구현된다. 제 1 DSP 모듈 (610)의 단일 샘플링 주기 동안 그 결과를 생성하기 위해 충분히 빠르게 동작하는 제 3 DSP 모듈 (630) 을 얻으려면, 제 1 DSP 모듈 (610) 의 4 배 레이트로 동작하는 제 3 DSP 모듈 (630) 을 얻는 것이 필요하다. 이것은 0 의 상수를 갖는 인터리빙된 계수들로 이 필터를 구현함으로써 달성될 수도 있다. 인터리빙 접근 방식은 16 개의 탭 제한을 설명한다.
서브-필터 합산 및 동기화는 시프트 레지스터 룩업 테이블 및 ALU 를 사용하여 제 2 DSP 모듈 (620) 에서 수행된다.
제 2 DSP 모듈 (620) 은 신호들을 동기화하기 위한 기초로서, 각각 제 1 및 제 3 DSP 모듈들로부터 계수 오버플로우 표시 (442) 를 수신하는 레지스터들 (651 및 652) 로부터 타이밍 정보를 수신한다.
DSP 모듈들 (610 및 630) 의 결과의 동기화는 DSP 모듈 (610) 과 동일한 깊이를 얻기 위해 모듈 (610) 의 출력에 지연 라인을 제공할 것을 요구한다 (탭들의 수 N 대 N/2 의 차이에 대한 정정). 이것은 DSP 구성에 불충분한 전용 레지스터가 있는 제 2 동작 모드에서 DSP 모듈 (620) 의 시프트 레지스터 룩업 테이블을 사용하여 수행될 수도 있다. 레지스터들의 특정 수는 구현 세부사항들에 따라 다르지만, 예를 들어 3 개의 파이프 레벨이 필요하고, 다른 신호들이 2*3 = 6 개 플립 플롭을 가지며, DSP 회로들이 2 만을 제공하는 경우, 추가 DSP 모듈의 시프트 레지스터 룩업 테이블에 의해 추가 레벨이 제공될 수도 있다.
따라서, 디지털 필터는 피드백 구성에서 제 1 유한 임펄스 응답 및 제 2 유한 임펄스 응답을 포함하는 무한 임펄스 응답 필터일 수도 있고, 여기서 상태 머신은 무한 임펄스 응답 필터를 구현하기 위해 제 1 유한 임펄스 응답 및 제 2 유한 임펄스 응답의 출력들의 결합을 코디네이트하는 동기화 신호들을 제공한다.
앞선 예들에서, 예를 들어 도 3 또는 도 4 와 관련하여 설명된 바와 같은 DSP 모듈에 기초한 다수의 상이한 구성들이 제시되었다. 이들 중 일부에서, 개별 DSP 모듈은 모듈 자체에서 필터 동작을 구현하는 것 이외의 목적으로 사용되었지만, 제안된 시스템의 다른 DSP 모듈에 다른 프로세싱, 저장 또는 동기화 기능을 제공하기 위해 사용되었다. 예를 들어, 도 3 또는 도 4 와 관련하여 설명된 것과 같은 DSP 모듈의 컴포넌트들 및 구성, 및 특히 자유롭게 액세스가능한 시프트 레지스터 룩업 테이블 (320) 및 메모리 유닛 (330) 의 가용성은 각각의 이러한 필터 유닛이 필터 동작들의 구현 외에 다수의 애플리케이션들에 매우 유연하고 적용가능하게 한다. 예를 들어, 도 3 또는 도 4 와 관련하여 설명된 것과 같은 DSP 모듈은 예를 들어, 큰 값, 복소 값 또는 부호있는 값을 처리할 수 있는 곱셈기, 멀티플렉서, 시프트 레지스터 등를 구현하는데 사용될 수도 있다.
도 7 은 일 실시형태에 따른 필터를 사용하여 구현된 부호있는 곱셈기를 도시한다.
원하는 크기의 곱셈기는 도 3 또는 도 4 를 참조하여 설명한 것과 같은 연접 DSP 모듈들의 시리즈를 사용하여 구현될 수도 있다.
47x47 비트 곱셈기는 다음 분해를 기반으로 정의될 수도 있다:
Figure pct00004
를 고려하면
그 후에,
Figure pct00005
앞에서 암시된 것과 같이, 곱셈기는 데이터를, (이 예의 곱셈기는 24 개의 부호있는 비트들을 처리하는데, 1 비트는 폐기되고 23 개의 부호있는 비트들은 유지되는 것에 기초하여) 한편으로는 23 개의 최하위 비트들의 세트로 분리하고, 다른 한편으로는 24 개의 최상위 비트들의 세트로 분리한다. 대응하는 결과가 다음 개별 DSP 모듈에서 결합될 수 있도록, 최상위 비트 세트와 최하위 비트의 대응하는 세트의 프로세싱 사이에 시프트가 동작된다.
도시된 바와 같이, 시스템은 4 개의 DSP 모듈들 (710, 720, 730, 740) 을 포함하며, 이들 각각은 도 3 또는 도 4 와 관련하여 설명된 배열에 실질적으로 대응한다. 특히, DSP 모듈 (710) 은 시프트 레지스터 룩업 테이블 (711), 예를 들어 도 4 에 대응하는 동기화 상태 머신 (713), 및 도 3 또는 도 4 의 필터 유닛에 함께 대응하는 곱셈기 (712) 및 가산기 (714) 를 포함한다. 도시된 바와 같이, 시프트 레지스터 룩업 테이블 (711) 의 시프트 레지스터는 위의 도 4 를 참조하여 설명한 바와 같이 2 부분으로 구성되며, 입력 A1 은 시프트 레지스터 (711a) 의 제 1 섹션에 공급되고 제 2 입력 B1 은 시프트 레지스터 (711b) 의 제 1 섹션에 공급된다. 각 시프트 레지스터 (711a, 711b) 는 곱셈기 (712) 의 개별 입력에 데이터를 공급한다. 곱셈기 (712) 의 출력은 가산기 (714) 를 통해 출력 (715) 에 공급된다. 제 1 DSP 모듈의 경우에 가산기 (714) 가 곱셈기의 출력에 0 을 가산하기 때문에, 이 컴포넌트는 동등하게 바이패스될 수도 있다 - 이는 제안된 아키텍처의 유연성을 입증하기 위해 이 예에서 유지된다는 것을 이해할 것이다.
유사하게, DSP 모듈 (720) 은 시프트 레지스터 룩업 테이블 (721), 예를 들어 도 4 에 대응하는 동기화 상태 머신 (723), 및 도 3 또는 도 4 의 필터 유닛에 함께 대응하는 곱셈기 (722) 및 가산기 (724) 를 포함한다. 도시된 바와 같이, 시프트 레지스터 룩업 테이블 (721) 의 시프트 레지스터는 위의 도 4 를 참조하여, 예를 들어 멀티플렉서 (426) 의 동작에 의해 설명한 바와 같이, 2 부분으로 구성되며, 입력 A1 은 시프트 레지스터 (721a) 의 제 1 섹션에 공급되고 제 2 입력 B2 은 시프트 레지스터 (721b) 의 제 1 섹션에 공급된다. 각 시프트 레지스터 (721a, 721b) 는 곱셈기 (722) 의 개별 입력에 데이터를 공급한다. 가산기 (724) 는 위의 분해에 따라 최상위 비트와 최하위 비트 사이의 시프트에 따라 곱셈기 (722) 의 출력과 선행 DSP 모듈 (710) 의 출력 (715) 을 가산한다. 곱셈기 (722) 의 출력은 가산기 (724) 를 통해 출력 (725) 에 공급된다.
유사하게, DSP 모듈 (730) 은 시프트 레지스터 룩업 테이블 (731), 예를 들어 도 4 에 대응하는 동기화 상태 머신 (733), 및 도 3 또는 도 4 의 필터 유닛에 함께 대응하는 곱셈기 (732) 및 가산기 (734) 를 포함한다. 도시된 바와 같이, 시프트 레지스터 룩업 테이블 (731) 의 시프트 레지스터는 위의 도 4 를 참조하여 설명한 바와 같이 2 부분으로 구성되며, 입력 A2 은 시프트 레지스터 (731a) 의 제 1 섹션에 공급되고 제 2 입력 B1 은 시프트 레지스터 (731b) 의 제 1 섹션에 공급된다. 각 시프트 레지스터 (731a, 731b) 는 곱셈기 (732) 의 개별 입력에 데이터를 공급한다. 가산기 (734) 는 곱셈기 (732) 의 출력과 선행 DSP 모듈 (720) 의 출력 (725) 을 가산한다. 곱셈기 (732) 의 출력은 가산기 (734) 를 통해 출력 (735) 에 공급된다.
유사하게, DSP 모듈 (740) 은 시프트 레지스터 룩업 테이블 (741), 예를 들어 도 4 에 대응하는 동기화 상태 머신 (743), 및 도 3 또는 도 4 의 필터 유닛에 함께 대응하는 곱셈기 (742) 및 가산기 (744) 를 포함한다. 도시된 바와 같이, 시프트 레지스터 룩업 테이블 (741) 의 시프트 레지스터는 위의 도 4 를 참조하여 설명한 바와 같이 2 부분으로 구성되며, 입력 A2 은 시프트 레지스터 (741a) 의 제 1 섹션에 공급되고 제 2 입력 B2 은 시프트 레지스터 (741b) 의 제 1 섹션에 공급된다. 각 시프트 레지스터 (741a, 741b) 는 곱셈기 (742) 의 개별 입력에 데이터를 공급한다. 가산기 (744) 는 위의 분해에 따라 최상위 비트와 최하위 비트 사이의 시프트에 따라 곱셈기 (742) 의 출력과 선행 DSP 모듈 (730) 의 출력 (735) 을 가산한다. 곱셈기 (742) 의 출력은 가산기 (744) 를 통해 출력 (745) 에 공급된다.
출력 컴포넌트 P[22:0] 는 적절한 타이밍 보정에 따라, 출력 (715) 에서 사용가능하다. 출력 컴포넌트 P[45:23] 는 적절한 타이밍 보정에 따라, 출력 (735) 에서 사용가능하다. 출력 컴포넌트 P[93:46] 는 적절한 타이밍 보정에 따라, 출력 (745) 에서 사용가능하다.
위에서 설명한 것과 같은 각각의 시프트 레지스터 (711a, 711b, 721a, 721b, 731a, 731b, 741a, 741b) 는 설명된 구성에서 사용되어, 곱셈기에 걸쳐 신호의 동기화를 제공하므로, 임의의 주어진 클록 사이클에서 각 출력의 값이 입력 값들 (A1, B1, A2 및 B2) 의 동일한 세트에 대응한다. 예를 들어, 시프트 레지스터 (711a, 711b) 는 각각 하나의 플립 플롭 가치의 지연을 개별 신호에 제공할 수도 있고, 시프트 레지스터 (721a, 721b) 는 각각 2 개의 플립 플롭 가치의 지연을 개별 신호에 제공할 수도 있고, 시프트 레지스터 (731a, 731b) 는 각각 3 개의 플립 플롭 가치의 지연을 개별 신호에 제공할 수도 있고, 시프트 레지스터 (741a, 741b) 는 각각 4 개의 플립 플롭 가치의 지연을 개별 신호에 제공할 수도 있다. 일부 실시형태들에서 DSP 유닛은 특히 이러한 목적을 위해 다수의 입력 레지스터들을 제공할 수도 있으며, 이는 시프트 레지스터 룩업 테이블의 시프트 레지스터뿐만 아니라 그들을 대신하여 사용될 수도 있다. 예를 들어, 특정 DSP 유닛 구현이 2 개의 입력 레지스터를 제공하는 경우, 제 1 및 제 2 DSP 유닛들은 동기화를 위해 오직 이러한 전용 입력 레지스터에만 의존할 수도 있는 반면, 제 3 및 제 4 레지스터는 2 개의 지연 레벨들에 대하여 전용 입력 레지스터를 사용할 수도 있고, 그 후에 시프트 레지스터 룩업 테이블의 시프트 레지스터를 사용하여 제 3 DSP 모듈에 필요한 하나의 추가 지연 레벨과 제 4 DSP 모듈에 필요한 2 개의 지연 레벨을 제공한다. 또한, 사용가능한 전용 입력 릴레이에 따라, 상기 기준으로 각 DSP 모듈의 A 입력 및 B 입력에 대해 지연 동작이 상이하게 처리될 수도 있다.
도시된 바와 같이, 각 DSP 모듈은 동기화를 위해, 곱셈기 (712, 722, 732, 742) 와 가산기 (714, 724, 734, 744) 사이 및 가산기 (714, 724, 734, 744) 와 출력 (715, 725, 735, 745) 사이에 추가 릴레이를 제공한다. 이러한 릴레이의 일부 또는 전부는 특정 실시형태들의 구현 세부사항들에 따라 생략될 수도 있거나, 주어진 구현에 대한 애플리케이션 요건에 따라 추가 릴레이가 제공될 수도 있다.
곱셈의 타이밍에 대한 추가로 필요한 레지스터를 시뮬레이션하기 위해 DSP 유닛의 SRL 을 사용하는 것은 제 2 동작 모드에서 도 3 또는 도 4 를 참조하여 설명한 것과 같은 DSP 모듈의 사용의 일 예를 구성한다.
도 7 과 관련하여 도시된 것과 같은 상기 제 2 동작 모드에서, DSP 모듈의 시프트 레지스터 룩업 테이블이 곱셈기 입력 레지스터로 사용된다.
따라서, 곱셈기 및 가산기를 포함하는 필터 유닛을 포함하는 유연한 디지털 신호 프로세서 모듈이 개시되며, 여기서 곱셈기는 메모리 및 시프트 레지스터 룩업 테이블로부터 입력을 수신한다. 디지털 신호 프로세서 모듈은 메모리로부터의 적절한 필터 계수들 및 시프트 레지스터 룩업 테이블로부터의 데이터 값들을 제공함으로써 FIR 또는 IIR 필터와 같은 디지털 필터를 구현할 수도 있다. 옵션적 상태 머신은 메모리 시프트 레지스터 룩업 테이블의 어드레싱의 동기화를 보장할 수 있으며, 디지털 신호 프로세서 모듈의 여러 인스턴스 사이에서 이들은 특정 필터 구현에 필요하다. 제안된 아키텍처는 필터 구현 이외의 동작들이 지원되는 추가 동작 모드를 제공한다.
이를 기반으로, 제 2 동작 모드에서, 시프트 레지스터 룩업 테이블에 저장된 값들이 디지털 필터에 의한 것이 아닌 프로세싱을 위해 출력된다.
도 8 은 일 실시형태에 따른 디지털 신호 프로세서 동작을 수행하는 방법을 나타낸다.
도시된 바와 같이, 방법은 단계 (810) 로 진행하기 전에 단계 (800) 에서 시작하며, 단계 (810) 에서 제 1 동작 모드에서 디지털 신호 프로세서에 데이터를 출력하도록 시프트 레지스터 룩업 테이블이 어드레싱된다. 그 후에, 방법은 제 1 동작 모드에서 디지털 필터에 계수들을 제공하도록 필터 메모리가 어드레싱되는 단계 (820) 로 진행한다. 그 후에, 방법은 단계 (840) 에서 종료하기 전에 계수를 사용하여 입력 데이터에 대해 디지털 필터 동작을 수행하는 단계 (830) 로 진행한다.
도 8 의 방법은 디지털 필터를 정의하는 복수의 계수들의 각각에 대해, 반복적으로 수행될 수도 있다.
단계들 (810 및 820) 은 반대 순서, 즉 810 이전에 820 이 수행되거나 또는 2 개 단계들이 병렬로 수행될 수도 있다.
방법은 단일 어드레스 값이 제 1 동작 모드에서 디지털 필터에 대한 대응하는 계수들 및 입력 데이터를 참조하도록, 시프트 레지스터 룩업 테이블 및 필터 메모리를 구성하는 추가 단계를 포함하고, 따라서 제 1 동작 모드에서 디지털 신호 프로세서에 데이터를 출력하도록 시프트 레지스터 룩업 테이블을 어드레싱하는 단계, 및 제 1 동작 모드에서 디지털 필터에 계수들을 제공하도록 필터 메모리를 어드레싱하는 단계는 단일 어드레스 값을 사용하여 수행된다.
도 8 의 방법의 특정 예시들에서 디지털 필터 동작은 유한 임펄스 응답 필터 동작일 수도 있다.
도 8 의 방법의 특정 예시들에서, 디지털 필터 동작은 피드백 값들에 기초하여 제 1 유한 임펄스 응답 동작 및 제 2 유한 임펄스 응답 동작을 포함하는 무한 임펄스 응답 필터 동작일 수도 있고, 상기 방법은 무한 임펄스 응답 필터 결과를 획득하기 위해 제 1 유한 임펄스 응답 동작 및 제 2 유한 임펄스 응답 동작의 결과들의 결합을 코디네이트하는 인에이블 신호들을 제공하는 추가 단계를 포함한다.
일부 실시형태들에서, 본원에 설명된 방법들 및 프로세스들은 컴퓨팅 디바이스에 의해 전체적으로 또는 부분적으로 구현될 수도 있다. 이들 방법들 및 프로세스들은 컴퓨터-애플리케이션 프로그램들 또는 서비스들, 애플리케이션-프로그래밍 인터페이스 (API), 라이브러리, 및/또는 다른 컴퓨터 프로그램 제품, 또는 그러한 엔티티들의 임의의 조합에 의해 구현될 수도 있다. 특히, 도 8 의 방법의 단계들, 또는 위에서 설명된 이들의 임의의 변형들을 구현하도록 적응된 명령들을 포함하는 컴퓨터용 프로그램이 제공될 수도 있다.
본원에 설명된 구성들 및/또는 접근방식들은 사실상 예시적이고, 이들 특정 실시형태들 또는 예들은, 다수의 변형들이 가능하기 때문에 제한된 의미에서 고려되지 않아야 함이 이해될 것이다. 본원에 설명된 특정 루틴들 또는 방법들은 임의의 수의 프로세싱 전략들 중 하나 이상을 나타낼 수도 있다. 이와 같이, 예시되고 및/또는 설명된 다양한 활동들은 예시되고 및/또는 설명된 순서로, 다른 순서들로, 병렬로 수행될 수도 있거나, 또는 생략될 수도 있다. 유사하게, 앞서 설명된 프로세스들의 순서는 변경될 수도 있다.
본 개시물의 주제는 다양한 프로세스들, 시스템들, 구성들의 모든 신규하고 명백하지 않은 조합들 및 서브조합들, 그리고 본원에 개시된 다른 특징들, 기능들, 활동들, 및/또는 특성들, 뿐만 아니라 그 임의의 및 모든 등가물들을 포함한다.

Claims (14)

  1. 디지털 필터, 시프트 레지스터 룩업 테이블 및 필터 메모리를 포함하는 프로그래밍가능한 디지털 신호 프로세서로서,
    상기 시프트 레지스터 룩업 테이블은 제 1 동작 모드에서 입력 데이터를 상기 디지털 필터에 제공하도록 결합되고, 상기 필터 메모리는 상기 제 1 동작 모드에서 필터 계수들을 상기 디지털 필터에 제공하도록 결합되며,
    상기 필터 메모리 및 상기 시프트 레지스터 룩업 테이블의 출력들은 대응하는 필터 계수들과 입력 데이터를 생성하여 함께 원하는 필터 구성을 구현하도록 동기화되는, 프로그래밍가능한 디지털 신호 프로세서.
  2. 제 1 항에 있어서,
    상기 시프트 레지스터 룩업 테이블은 시프트 레지스터를 포함하고, 상기 시프트 레지스터는 단일 연속 시프트 레지스터로서, 또는 복수의 독립적으로 동작가능한 시프트 레지스터들로서 동작가능하도록 구성되는, 프로그래밍가능한 디지털 신호 프로세서.
  3. 제 1 항 또는 제 2 항에 있어서,
    상태 머신을 더 포함하고, 상기 상태 머신은 상기 시프트 레지스터 룩업 테이블 및 상기 필터 메모리에 어드레싱 값들을 제공하는, 프로그래밍가능한 디지털 신호 프로세서.
  4. 제 2 항에 있어서,
    상기 어드레싱 값들은 상기 시프트 레지스터 룩업 테이블 및 상기 필터 메모리에 대한 단일 어드레스를 포함하며, 이에 의해 상기 시프트 레지스터 룩업 테이블 및 상기 필터 메모리에 저장된 값들은, 상기 단일 어드레스가 상기 제 1 동작 모드에서 상기 디지털 필터에 대하여 대응하는 상기 계수들 및 입력 데이터를 참조하도록 구성되는, 프로그래밍가능한 디지털 신호 프로세서.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    제 2 동작 모드에서 상기 시프트 레지스터 룩업 테이블에 저장된 값들은 상기 디지털 필터에 의한 것이 아닌 프로세싱을 위해 출력되는, 프로그래밍가능한 디지털 신호 프로세서.
  6. 제 5 항에 있어서,
    상기 제 2 동작 모드에서 상기 시프트 레지스터 룩업 테이블은 곱셈기 입력 레지스터로서 사용되는, 프로그래밍가능한 디지털 신호 프로세서.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서
    상기 디지털 필터는 유한 임펄스 응답 필터의 컴포넌트를 구성하는, 프로그래밍가능한 디지털 신호 프로세서.
  8. 제 3 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 디지털 필터는 피드백 구성에서 제 1 유한 임펄스 응답 필터 및 제 2 유한 임펄스 응답 필터를 포함하는 무한 임펄스 응답 필터의 컴포넌트를 구성하며, 상기 상태 머신은 상기 무한 임펄스 응답 필터를 구현하기 위해 상기 제 1 유한 임펄스 응답 필터 및 상기 제 2 유한 임펄스 응답 필터의 출력들의 결합을 코디네이트하는 인에이블 신호들을 제공하는, 프로그래밍가능한 디지털 신호 프로세서.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서
    상기 디지털 신호 프로세서는 복수의 룩업 테이블들을 포함하는 FPGA 아키텍처로 구현되며, 각각의 상기 룩업 테이블의 구성은 구성 비트 스트림으로 시스템 개시에서 프로그래밍된 하나 이상의 개별 메모리 유닛들에 의해 정의되며, 상기 필터 메모리의 값들은 또한 상기 구성 비트 스트림에 의해 프로그래밍되는, 프로그래밍가능한 디지털 신호 프로세서.
  10. 디지털 신호 프로세서 동작을 수행하는 방법으로서,
    제 1 동작 모드에서 상기 디지털 신호 프로세서에 데이터를 출력하도록 시프트 레지스터 룩업 테이블을 어드레싱하는 단계, 상기 제 1 동작 모드에서 디지털 필터에 계수를 제공하도록 필터 메모리를 어드레싱하는 단계, 및 상기 계수를 사용하여 입력된 상기 데이터에 디지털 필터 동작을 수행하는 단계를 포함하는, 디지털 신호 프로세서 동작을 수행하는 방법.
  11. 제 10 항에 있어서,
    단일 어드레스 값이 상기 제 1 동작 모드에서 상기 디지털 필터에 대한 대응하는 계수들 및 입력 데이터를 참조하도록, 상기 시프트 레지스터 룩업 테이블 및 상기 필터 메모리를 구성하는 추가 단계를 포함하고, 따라서 상기 제 1 동작 모드에서 상기 디지털 신호 프로세서에 계수들을 출력하도록 시프트 레지스터 룩업 테이블을 어드레싱하는 단계, 및 상기 제 1 동작 모드에서 상기 디지털 필터에 입력 데이터를 제공하도록 필터 메모리를 어드레싱하는 단계는 상기 단일 어드레스 값을 사용하여 수행되는, 디지털 신호 프로세서 동작을 수행하는 방법.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 디지털 필터 동작은 유한 임펄스 응답 필터 동작인, 디지털 신호 프로세서 동작을 수행하는 방법.
  13. 제 11 항 또는 제 12 항에 있어서,
    상기 디지털 필터 동작은 피드백 값들에 기초하여 제 1 유한 임펄스 응답 동작 및 제 2 유한 임펄스 응답 동작을 포함하는 무한 임펄스 응답 필터 동작이고, 상기 방법은, 무한 임펄스 응답 필터 결과를 획득하기 위해 상기 제 1 유한 임펄스 응답 동작 및 상기 제 2 유한 임펄스 응답 동작의 결과들의 결합을 코디네이트하는 인에이블 신호들을 제공하는 추가 단계를 포함하는, 디지털 신호 프로세서 동작을 수행하는 방법.
  14. 제 10 항 내지 제 13 항 중 어느 한 항에 기재된 단계들을 구현하도록 적응된 명령들을 포함하는, 컴퓨터용 프로그램.
KR1020207036837A 2018-06-22 2019-06-19 디지털 신호 프로세서 및 동작 방법 KR102663975B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18305800.7A EP3588779B1 (en) 2018-06-22 2018-06-22 Digital signal processor and method of operation
EP18305800.7 2018-06-22
PCT/EP2019/066249 WO2019243443A1 (en) 2018-06-22 2019-06-19 Digital signal processor and method of operation

Publications (2)

Publication Number Publication Date
KR20210043495A true KR20210043495A (ko) 2021-04-21
KR102663975B1 KR102663975B1 (ko) 2024-05-07

Family

ID=62874820

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207036837A KR102663975B1 (ko) 2018-06-22 2019-06-19 디지털 신호 프로세서 및 동작 방법

Country Status (11)

Country Link
US (1) US11354382B2 (ko)
EP (1) EP3588779B1 (ko)
JP (1) JP7486439B2 (ko)
KR (1) KR102663975B1 (ko)
CN (1) CN112425075A (ko)
CA (1) CA3104207A1 (ko)
IL (1) IL279283A (ko)
RU (1) RU2769964C1 (ko)
SG (1) SG11202012294QA (ko)
TW (1) TWI798455B (ko)
WO (1) WO2019243443A1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990056053A (ko) * 1997-12-29 1999-07-15 윤종용 유한장 임펄스응답 필터 및 그 필터링 방법
KR20040002846A (ko) * 2000-11-03 2004-01-07 콸콤 인코포레이티드 상태 저장장치를 구비한 디지털 필터
US7248646B1 (en) * 2002-04-19 2007-07-24 Analog Devices Inc. Digital reconfigurable core for multi-mode base-band transmitter

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2066540C (en) * 1991-06-13 1998-01-20 Edwin A. Kelley Multiple user digital receiving apparatus and method with time division multiplexing
US5654909A (en) * 1993-04-15 1997-08-05 Icom Incorporated 90-degree digital phase shift network and linearizer using all-pass digital filters
US6202074B1 (en) * 1998-08-07 2001-03-13 Telefonaktiebolaget Lm Ericsson Multiplierless digital filtering
US6337878B1 (en) * 1999-03-03 2002-01-08 Nxt Wave Communications Adaptive equalizer with decision directed constant modulus algorithm
DE10003006A1 (de) * 2000-01-25 2001-07-26 Bosch Gmbh Robert Anordnung und Verfahren zur Signalverarbeitung und Speicherung
JP2001339279A (ja) 2000-05-29 2001-12-07 Canon Inc フィルタ回路
US6407694B1 (en) * 2000-06-14 2002-06-18 Raytheon Company General purpose filter
KR100378592B1 (ko) * 2000-07-31 2003-03-31 한국전자통신연구원 디지털 이동 통신용 108 탭 1대4 인터폴레이션유한임펄스응답 필터장치
US7120656B1 (en) * 2000-10-04 2006-10-10 Marvell International Ltd. Movable tap finite impulse response filter
US7007052B2 (en) * 2001-10-30 2006-02-28 Texas Instruments Incorporated Efficient real-time computation
US6888372B1 (en) * 2002-12-20 2005-05-03 Altera Corporation Programmable logic device with soft multiplier
DE602005000014T2 (de) * 2004-01-28 2006-11-23 Ntt Docomo, Inc. Mehrbandvorverzerrer mit Korrekturwertetabellen
US7466782B1 (en) * 2004-02-05 2008-12-16 Maxtor Corporation Methods, apparatus and computer program products for determining the timing of bits based on frequency error
US7548941B2 (en) * 2004-06-18 2009-06-16 Analog Devices, Inc. Digital filter using memory to emulate variable shift register
RU2316807C2 (ru) * 2005-06-14 2008-02-10 Открытое акционерное общество "Научно-конструкторское бюро вычислительных систем" ОАО НКБ ВС Управляющая эвм
US7265576B1 (en) * 2005-06-14 2007-09-04 Xilinx, Inc. Programmable lookup table with dual input and output terminals in RAM mode
US7482951B1 (en) * 2006-05-08 2009-01-27 The United States Of America As Represented By The Secretary Of The Air Force Auditory attitude indicator with pilot-selected audio signals
US7459932B1 (en) * 2007-05-24 2008-12-02 Altera Corporation Programmable logic device having logic modules with improved register capabilities
US8242759B2 (en) * 2008-06-26 2012-08-14 International Rectifier Corporation Power supply circuit and multi-phase control based on peak and average current
RU2399093C2 (ru) * 2008-08-05 2010-09-10 Виктор Анатольевич Кущенко Процессор образов кущенко в.а.
JP5365369B2 (ja) * 2009-06-26 2013-12-11 富士通株式会社 送信装置、歪み補償装置及び歪み補償方法
US8509721B2 (en) * 2009-11-09 2013-08-13 Research In Motion Limited Hysteresis nonlinear state machine with overlapping thresholds for automatic frequency control
US8874633B2 (en) * 2011-08-23 2014-10-28 Lsi Corporation Determining coefficients for digital low pass filter given cutoff and boost values for corresponding analog version
KR101599909B1 (ko) * 2012-02-29 2016-03-04 고쿠리츠켄큐카이하츠호진 카가쿠기쥬츠신코키코 화상처리용 디지털 필터 및 문자열 경사 착시 생성 장치
US9848793B2 (en) * 2013-02-15 2017-12-26 Masdar Institute Of Science And Technology Machine-based patient-specific seizure classification system
TWI536731B (zh) * 2013-08-20 2016-06-01 瑞昱半導體股份有限公司 預失真方法、預失真裝置以及機器可讀媒體

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990056053A (ko) * 1997-12-29 1999-07-15 윤종용 유한장 임펄스응답 필터 및 그 필터링 방법
KR20040002846A (ko) * 2000-11-03 2004-01-07 콸콤 인코포레이티드 상태 저장장치를 구비한 디지털 필터
US7248646B1 (en) * 2002-04-19 2007-07-24 Analog Devices Inc. Digital reconfigurable core for multi-mode base-band transmitter

Also Published As

Publication number Publication date
IL279283A (en) 2021-01-31
RU2769964C1 (ru) 2022-04-11
US11354382B2 (en) 2022-06-07
SG11202012294QA (en) 2021-01-28
EP3588779B1 (en) 2021-02-24
JP7486439B2 (ja) 2024-05-17
CA3104207A1 (en) 2019-12-26
WO2019243443A1 (en) 2019-12-26
US20210117497A1 (en) 2021-04-22
TW202032373A (zh) 2020-09-01
TWI798455B (zh) 2023-04-11
JP2021530138A (ja) 2021-11-04
KR102663975B1 (ko) 2024-05-07
EP3588779A1 (en) 2020-01-01
CN112425075A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
JP5356537B2 (ja) 前置加算器段を備えたデジタル信号処理ブロック
US7409417B2 (en) Polyphase filter with optimized silicon area
EP0700543A1 (en) Complex adaptive fir filter
US6920470B2 (en) Signal processing integrated circuit
US20070074001A1 (en) Reconfigurable integrated circuit device
JPH118567A (ja) マッチドフィルタおよび同期方法
KR102663975B1 (ko) 디지털 신호 프로세서 및 동작 방법
US9460007B1 (en) Programmable hardware blocks for time-sharing arithmetic units using memory mapping of periodic functions
EP3114541B1 (en) Flexible chirp generator
JP2003264451A (ja) デジタルフィルタ
KR100249040B1 (ko) 비대칭 주파수 응답 특성을 갖는 fir 필터
EP0686917A1 (en) Apparatus for processing a series of timing signals
US8645442B2 (en) Method and apparatus for a finite impulse response filter
JP4630056B2 (ja) 畳み込み演算回路
JP2004128858A (ja) Firデジタルフィルタ
Mohanty Novel block-formulation and area-delay-efficient reconfigurable interpolation filter architecture for multi-standard sdr applications
KR100253181B1 (ko) 다중 클럭신호 발생회로
KR100480068B1 (ko) 디지탈 필터
JP2536942B2 (ja) 半導体集積回路
JP2004165945A (ja) Firディジタルフィルタ
JPH0459805B2 (ko)
JP2000315937A (ja) ディジタルフィルタ
KR20010075916A (ko) 다중 위상 클럭을 이용한 유한 임펄스 응답 필터
JP2001345678A (ja) Firフィルタ
JP2001028531A (ja) 適応デジタルフィルタ

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant