검색 상세

SDRAM기반의 고속 코너터닝 버퍼를 이용한 혈류 속도 추정기 구현

Implementation of a blood flow speed estimator using SDRAM-based high speed corner turning buffer

초록/요약

초음파 혈류 속도 추정기는 인체 내의 혈류의 속도, 방향, 난류화에 대한 정보를 제공하므로 심장 및 순환기 질병 진단에 필수적이다. 현장에서 응급처치 및 원격진단에 대한 사회적인 요구로 인하여 초음파 혈류 속도 추정기의 소형화에 대한 연구가 최근에 많이 진행되어 왔다. 하지만 노이즈에 민감하며 하드웨어 복잡도가 커 소형화하기 어려웠다. 본 논문에서는 시작품 초소형 혈류 속도 추정기를 구현하기 위한 효율적인 하드웨어 구조를 제안하고 실제 연구실에서 개발한 소형 초음파 의료 영상 장치(POC, Point of Care)에 구현한 혈류 속도 추정기의 성능을 분석하였다. 소형 혈류 속도 추정기 구현을 위해 내부 블록들에 제안된 방법들은 다음과 같다. 첫째, 코너터닝 버퍼부에서 기존에 듀얼포트(dual port) SRAM(Static Random Access Memory)과 FPGA(Field-Programmable Gate Array) 내부의 입출력 FIFO(First In, First Out) 4개로 구성되던 구조에서 임베디드 시스템에 적합한 저비용, 저전력인 두 개의 SDRAM(Synchronous Dynamic Random Access Memory)과 FPGA 내부의 입출력 FIFO 5개로 구현하였다. 코너터닝 버퍼부 메모리는 어드레스 22bit으로 구성되어 있으며 22bit는 상위부터 7bit, 5bit, 10bit을 각각 인터리브, 앙상블, 깊이방향데이터 어드레스 카운트 값으로 할당하여 코너터닝을 위한 메모리 접근을 용이하게 하였다. 그리고 모든 영상점에 대하여 언제나 버스트 라이트, 리드(burst write, read)모드를 사용하여 최대 속도로 데이터를 쓰고 읽는 것이 가능하다. 또한 낮은 속도의 혈류 관측 시 인터리브가 가능하도록 설계하여 보다 정확하게 도플러 주파수를 관측함과 동시에 프레임율을 높일 수 있었다. 둘째, 클러터 필터부는 매트릭스 형태의 연산 구조로 구현되어 필터 계수만 변경하면 여러 가지 필터(FIR(Finite Impulse Response) 필터, IIR(Infinite Impulse Response) 필터, 다항 회기 필터)로 변경이 가능하여 상황에 따라 성능을 가장 높일 수 있도록 구현하였다. 이 때 모든 앙상블(8, 16, 20, 24, 28, 32)에 대한 필터계수를 저장하려면 메모리 크기가 커지므로 앙상블 길이가 바뀌면 프로세서에서 클러터 필터 메모리의 내용을 앙상블 길이에 맞는 계수로 업데이트 시켜주는 방식을 사용하여 내부 메모리 용량을 줄였다. 셋째, 축방향 필터부의 일반적인 구조는 16탭 FIR필터이다. 이를 FIR 필터의 선형위상특성을 고려하여 필터 계수를 절반으로 줄였고 자기상관기부에서 데이터율이 8배 감소하는 것을 이용하여 8배 폴딩변환하여 구현하였다. 결과적으로 곱셈기 48개에서 3개로, 덧셈기 45개에서 3개로 감소시켰다. 넷째, 출력 패킹부에서는 관심영역의 칼라 데이터 이외의 영역에 0을 채운 후 전체 주사선 데이터개수인 1024개를 만들어 칼라 디지털 주사선 변환기부(CDSC, Color Digital Scan Converter)에 출력한다. 이렇게 할 경우 칼라 디지털 주사선 변환기부에서 관심영역에 대한 위치 정보를 모르더라도 B 모드와 C 모드를 오버레이하는 데 매우 용이하게 된다. 제안한 구조를 Xilinx사의 virtex4 FPGA를 이용하여 약 60만 게이트의 리소스를 사용하여 구현하였다. 임의의 입력 테스트벡터에 대해서 MATLAB 시뮬레이터의 결과와 VHDL로 구현한 결과가 동일하게 혈류 속도 추정을 정확히 수행하는 것을 확인하였다. 또한 실제 연구실에서 개발한 소형 초음파 의료 영상 장비인 POC시스템에 혈류 속도 추정기를 구현한 후 파형 발생기, 스트링 팬텀 등의 실험환경에서 혈류 속도 추정의 성능 평가를 실시하였다.

more

초록/요약

Nowadays social needs are increasing for emergency medical treatment and telediagnosis. And a lot of developments are being proceeded about small scale medical treatment device that can be built in handheld device like PDA. Among them, many researchers have been showing interest in a small scale blood flow speed estimator of ultrasound imaging devices. Because it can offer the imformation about blood speed, direction and turbulance that is essential to detect heart or a circulatory organ disease. But it is difficult to minimize that. Because it is sensitive to noise and has massive hardware complexity for designing in the small device. In this thesis, we present methods to design effective blood flow speed estimator that can be built in handheld device like PDA and analyze the performance. The efforts done for each blocks composed of the bloodflow speed estimator are follows. First of all, corner turning buffer block which is composed of a dual port SRAM and four internal FIFOs, is changed to two SDRAMs with five internal FIFOs. Because SDRAM is adjusted to small scale system due to its low cost, low power. Corner turning buffer memory is composed of address 22bit. Address 22bit is divided by 7bit(for interleave address), 5bit(for ensemble address), 10bit(for depth address) in order to easily access memory for corner turning. Moreover it is feasible to operate sufficient by burst write, read mode. It is possible to write and read the data in the fastest speed. It is also designed to be able to interleave. So it can not only detect the doppler frequency more correctly but also make the frame rate high when low speed blood flow is observed. Second, clutter filter block is designed by matrix structure. If filter coefficient is changed without changing the hardware structure, many different kinds of filter are able to be used. Example of FIR filter, IIR filter and polynomial regression filter, etc. So it is possible to select the filter to make the performance best according to the situation. If storing all the coefficients about every ensembles(8, 12, 16, 20, 24, 28, 32), memory size has to be big. So by using the way to update the filter coefficient from the processor to clutter filter memory according to ensemble number, the size of memory can be small by 7 times. Third, the general structure of axial filter block is 16-tap FIR filter. Using the linear phase property of FIR filter, filter coefficient can be reduced into halves. Using the fact that datarate is reduced to 8 times after autocorrelation block, 8 times folding transformation is done. At last, the number of multiplier is reduced from 48 to 3 and the number of adder is reduced from 45 to 3. Fourth, Output packing block makes the number of output scanline data from ROI(Region of Interest) number(1∼512) to whole scanline data number(1∼1024) by inserting the zero in the region except ROI. In case of that, It is easy for color digital scan converter block to overlay B mode data with C mode data without knowing the ROI location information. By way of applications above, blood flow speed estimator is implemented of about 600,000 gate in Xinlinx virtex4 FPGA. It confirms that hardware design using VHDL accomplishes the blood flow estimation correctly the same as MATLAB simulator when any input test vectors are incoming. And after blood flow speed estimator is implemented in the POC system which is small scale ultrasound imaging device, we do performance estimation through the experiment environment such as arbitrary waveform, string phantom, flow phantom.

more

목차

Ⅰ. 서론 = 1
Ⅱ. 혈류 속도 추정기의 소개 = 5
2.1. 혈류 속도 추정기의 개념 및 응용 = 5
2.2. 자기 상관 방식을 이용한 속도 추정 기법 = 9
Ⅲ. 일반적인 혈류 속도 추정기의 알고리즘 및 시스템 구성 = 14
Ⅳ. 소형 장치에 적합한 혈류 속도 추정기 = 23
4.1. 시스템 사양 및 제한요소 = 23
4.1.1. 데이터율 관련 제한 사항 = 25
4.2. 제안한 혈류 속도 추정기의 구성 및 설계 = 28
4.2.1. 혈류 속도 추정기 RTC부 (Real Time Controller) = 29
4.2.2. 혈류 속도 추정기 입력부 = 30
4.2.3. 코너터닝 버퍼부 = 31
4.2.4. 클러터 필터부 = 39
4.2.5. 자기상관기부 = 41
4.2.6. 축방향 필터부 = 42
4.2.7. 위상 및 크기 추정부 = 43
4.2.8. 분산값 추정부 = 46
4.2.9. 키홀 필터부 = 47
4.2.10. 출력 패킹부 = 48
Ⅴ. 제안한 혈류 속도 추정부의 성능 및 결과 = 50
5. 1. FPGA 로직 사용량 = 51
5. 2. 컴퓨터 모사 실험 및 고찰 = 52
5. 3. 하드웨어 디버깅 환경 = 56
5. 4. POC시제품에서 혈류 속도 추정 실험 결과 및 토의 = 57
Ⅵ. 결론 = 72
참고문헌 = 73
그림차례
그림 2. 1. 2차원 혈류 속도 추정기 영상의 구성 = 6
그림 2. 2. 2차원 혈류 속도 추정기 영상의 혈류 속도 매핑 = 6
그림 2. 3. 혈류 속도 추정기에서 송수신 과정 = 7
그림 3. 1. 초음파 의료장치의 구성도 = 14
그림 3. 2. 혈류 속도 추정기의 신호 처리 과정 블록도 = 15
그림 3. 3. 디지털 리시버 블록도 = 16
그림 3. 4. 혈류 속도 추정기의 코너 터닝 = 17
그림 3. 5. 클러터, 도플러 주파수 스펙트럼 분포 및 클러터 필터 예 = 19
그림 3. 6. 복소평면에서의 키홀 필터 = 21
그림 4. 1. 혈류 속도 추정기 입력 데이터율 = 25
그림 4. 2. 자기상관기에서의 입출력 데이터율 관계 = 26
그림 4. 3. 혈류 속도 추정기 데이터 변화율 = 27
그림 4. 4. 제안한 혈류 속도 추정기의 전체 블록도 = 28
그림 4. 5. 혈류 속도 추정기 RTC부 = 29
그림 4. 6. 혈류 속도 추정기 입력부 = 30
그림 4. 7. 제안한 코너터닝 버퍼부 구조 = 32
그림 4. 8. 인터리브를 하는 빔 송신 방법과 인터리브 후단 도플러 주파수 스펙트럼 = 35
그림 4. 9. 고속 코너터닝을 위해 제안된 SDRAM 메모리맵 = 36
그림 4. 10. 제안한 클러터 필터부 구조 = 40
그림 4. 11. 제안한 자기상관기부 구조 = 41
그림 4. 12. 기본적인 축방향 필터부 구조 = 42
그림 4. 13. 제안한 축방향 필터부 구조 = 43
그림 4. 14. CORDIC 부 구조 = 44
그림 4. 15. 위상 문턱값 회전과 y의 부호 관계 = 45
그림 4. 16. 제안한 크기.위상 추정부 구조 = 46
그림 4. 17. 제안한 분산값 측정부 구조 = 46
그림 4. 18. 제안한 키홀 필터부 구조 = 47
그림 4. 19. 제안한 출력 패킹부 구조 = 48
그림 5. 1. 제안한 혈류 속도 추정기를 구현할 POC 2차 시제품 = 50
그림 5. 2. 혈류 속도 추정 검증을 위한 입력 테스트 벡터 = 52
그림 5. 3. 서로 다른 4개의 도플러 주파수 성분을 갖는 입력 신호에 대한 컴퓨터 모사 실험 결과 비교 = 53
그림 5. 4. 서로 다른 20개의 도플러 주파수 성분을 갖는 입력 신호에 대한 컴퓨터 모사 실험 결과 비교 = 54
그림 5. 5. Siemens Sonoline을 이용해 얻어진 인체 데이터에 대한 컴퓨터 모사 실험 결과 비교 = 55
그림 5. 6. 하드웨어 디버깅 환경 = 56
그림 5. 7. 파형 발생기를 이용한 혈류 속도 추정 실험 환경 = 57
그림 5. 8. 파형 발생기를 이용한 혈류 속도 추정 실험 결과 = 59
그림 5. 9. 스트링 팬텀(String Phantom) 실험 장비 = 60
그림 5. 10. 스트링 팬텀을 이용한 실험에서의 관심 영역 = 62
그림 5. 11. PRF 2kHZ, 스트링 속도 20cm/s, 61cm/s일 때 예상되는 도플러 주파수 = 63
그림 5. 12. 스트링 속도 20cm/s일 때 클러터 필터부와 크기.위상 추정부 실험 결과 = 64
그림 5. 13. 스트링 속도 61cm/s일 때 클러터 필터부와 크기.위상 추정부 실험 결과 = 65
그림 5. 14. 스트링 속도 20cm/s, 61cm/s일 때 혈류 속도 추정기 출력 = 66
그림 5. 15. 관심 영역 넓게하여 혈류 속도 추정 실험 = 67
그림 5. 16. 혈류 속도 추정 정확도 분석 실험을 위한 관심 영역 = 68
그림 5. 17. 혈류 속도 추정 정확도 분석 실험의 예상되는 도플러 주파수 = 69
그림 5. 18. 스트링 속도에 따라 예상되는 도플러 주파수, 추정된 도플러 주파수 및 주파수 추정 오차 = 70
그림 5. 19. 혈류 속도 추정기가 내장된 POC 2차 시제품 = 71
표차례
표 4. 1. 설계 대상 혈류 속도 추정기 사양 = 23
표 4. 2. 측정 깊이와 최대 측정 혈류 속도 = 25
표 4. 3. 시스템 제한 사항 = 27
표 5. 1. 제안된 혈류 속도 추정기의 로직 게이트 사용량 = 51
표 5. 2. VCA 이득에 따른 혈류 속도 추정기 입력 다이나믹 레인지 = 58
표 5. 3. 스트링 팬텀 실험 스펙 = 61
표 5. 4. 속도 추정 정확도 분석 실험 위한 시스템 스펙 = 68

more