멀티 터치 스크린을 위한 IR Sensor 선정시 고려해야 할 점으로 휘도 및 적외선 파장이다. 대부분의 적외선 센서가 850nm~940nm의 적외선 파장을 가지고 있는데 후에 적외선 필터의 차단 주파수와 관련하여서 필터 되어지지 않도록 적당한 센서를 선정해야 한다. 휘도는 멀티터치 스크린의 감도를 결정짓는 중요한 사항이므로 휘도는 최대한 센것을 선택하여야 한다 초기 프로젝트의 IR Sensor로 2가지의 모델을 선택하였다. Vishay사의 TSAL6200과 AUK Semiconductor사의 SI-5315. 각각 특성은 Vishay사의 TSAL6200같은 경우 210mW/sr의 휘도와 +/-17도의 각도, 940nm의 적외선 파장의 특징을 보이고 있으며 국내에서 쉽게 구할 수 있는 AUK Semiconductor사의 SI-5315는 145mW/sr의 휘도와 +/-20도의 각도, 950nm의 적외선 파장의 특징을 보이고 있다. 스크린의 가로 사이즈가 800mm인데 1.5cm마다 적외선 센서를 하나씩 배치하여 사각지대가 발생하지 않고 정확한 포인트를 추출할 수 있도록 110개 정도의 IR Sensor를 사용하였다. 처음에는 한쪽면에서만 IR_Sensor를 투사하였으나 거리가 길어짐에 휘도가 약해짐을 고려하여 양쪽 가로면에서 IR_Sensor를 투사하였다.
< Power 및 IR_Sensor회로 > IR Sensor의 전원 공급으로 컴퓨터의 12V Power Supply를 사용하려 계획하였다. 12V의 Power Supply에 적절한 저항을 연결한 회로를 구성하여 개별적인 IR Sensor 적당한 전류와 전압이 바이어스 되도록 한다.
테스트 결과 감도가 둔하여 펄스 구동을 하기로 결정하였다. IR Sensor는 흐르는 전류에 따라서 IR Sensor의 휘도가 바뀌게 되는데 지속적으로 흐르는 허용 전류는 낮은 반면 짧은 시간 동안 주기적으로 On/Off 시켜주는 Pulse구동의 경우 허용 전류가 10배정도 높다. 허용전류를 초과하면 IR_Sensor는 파손되므로 주의하여야 한다. Pulse구동을 하기 위하여 DSP2808을 사용하였다. Atmega 128이나 로직을 통하여 구현하여도 무관하나 손에 익숙한 DSP를 사용하였다. DSP를 이용하여 Pulse구동하여 주고 ULN2803 Darlington Array IC를 사용하여 흐를 수 있는 전류를 증폭하여 주었다. 테스트 결과 상당한 감도 향상을 얻을 수 있었다. 19V전원을 사용하였고 110개의 IR 센서 구동에 1A정도의 전류가 사용되었다.
[Pulse 구동 소스코드] - 간단하게 타이머 인터럽트를 사용하여 구현하였다. 타이머 인터럽트 주기는 20Us이며 20Us의 온타임에 180Us의 오프타임을 주어 1:9의 Pulse 구동을 하였다. 기타 레지스터 설정을 제외한 센서 인터럽트 소스 코드는 다음과 같다.
< Screen > 아크릴은 전반사를 잘 일으키는 매질 중에 하나이다 이러한 아크릴은 두께가 최소 8mm이상에서 전반사를 잘 일으키게 된다. 본 프로젝트를 위해서 800*600*10mm의 아크릴 판을 사용하여 Screen을 제작하도록 계획하였다. 스크린의 비율은 4:3비율이다. 여기서 스크린의 사이즈는 빔프로젝터를 통하여 Diffuser에 영상을 맺히게 할 때 사이즈의 크기가 클 수록 그 영사 거리도 길어지므로 적절하게 선택하여야 한다.
< Diffuser > 아크릴로 제작된 스크린의 표면에 프로젝터의 영상을 맺게 하기 위해 아크릴 판 아래에 기름종이나 후면영사용 스크린을 사용하여 구현할 수 있다. 이 Diffuser는 화면의 해상도 및 선명도에 영향을 많이 주게 되며 난반사되어 지는 적외선에도 영향을 주게 된다. Rosco Gray사의 후면영사용 스크린의 경우 상용제품 답게 선명한 화면을 보여주지만 1M*1M 사이즈에 20만원 초반의 가격대를 가지고 있으므로 기름종이로 대체하였다. 기름종이의 두께가 두꺼울 수록 난반사 되어지는 빛이 산란되어 지므로 적당한 두께의 기름종이를 사용하여야 한다.
전반사란 빛이 광학적으로 밀한 매질(굴절률이 큰 물질)에서 소한 매질(굴절률이 작은 물질)로 입사할 때, 입사각이 특정 각도 이상이면 그 경계 면에서 빛이 전부 반사되어 버리고 굴절광선은 존재하지 않게 되는데 이것을 전반사라 한다.
본 프로젝트에서 사용될 아크릴 판과 공기와의 굴절율의 차이를 이용하여 멀티 터치 스크린을 구현한다. 아크릴 판의 측면으로부터 투사된 적외선 LED의 빛은 아크릴 판의 내부를 따라 아크릴 표면에서 전반사를 이루게 된다. 이때 외부에서 아크릴 판 위로 접촉이 일어나게 되면 그 부분에서 빛이 산란하면 전반사 장애 즉 난 반사가 일어나게 된다. 멀티 터치 스크린 하드웨어 구조를 그림으로 보면 다음과 같다.
아크릴로 투사된 적외선 LED의 빛이 아크릴 판 안에서 전반사 되어지고, 손가락과의 접촉면에서 난 반사가 발생하는데 난반사 되어 아크릴판(스크린) 아래쪽으로 반사된 적외선은 적외선 카메라를 통하여 인식되고, 이를 영상처리 하여 난반사 된곳의 좌표와 이동 벡터를 파악하여 이를 이용하여 컨텐츠를 조작할 수 있다.
아데노신은 우리의 정맥을 통해 우리 몸 전체를 돌아다니며 중추신경이 지나치게 흥분되는 것을 막는 역할을 한다. 즉 “아데노신은 두뇌와 근육을 연결하는 신경 전달 물질의 이동을 방해한다”
이 아데노신은 하루 동안 자연스럽게 혈액 속에 쌓이게 되는데 이로써 저녁이 되면 피곤해지고 스르륵 잠이 들게 되는 것이다. 여기서 중요한 것은 아데노신의 수용기에 카페인이 함께 흡수된다는 것이다. 그런데 이 수용기는 자리가 하나 뿐이라 아데노신과 카페인 둘중에 하나만을 결합할 수 있다. 여기서 압도적인 우세인 것이 카페인 인거다!!! 이러한 이유로 에스프레소 더블 한잔이면 좀비 같던 몸이 쌩쌩하게 되살아나는 것이다.
당신의 두뇌 원리 찾기 커피를 마시면 우리 몸은 ‘도파민’이라는 성분을 분비하면서 바로 ‘카페인 매직’에 빠져들기 시작한다. 도파민은 우리의 뇌에서 문제해결 능력과 생리적인 욕구 그리고 기민성을 조절하는 회백질의 분비를 조절하는 역할을 한다. 로발로 박사는 “카페인이 우리 몸에 들어오면 얼마 지나지 않아 당신은 몸이 더 활기차고 정신이 반짝하는 것을 느낄 것이다”라며 “마음은 편안하지만 하고 있는 일에 좀더 쉽게 몰두하는 당신을 발견할 것이다”라고 설명한다. 이 모든 게 ‘별다방’이나 '콩다방'이 지구곳곳에서 매일 새로운 지점이 탄생하는지 설명해주는 것들이다.
적용하기 회의 전에 한 잔의 커피를 마셔라. 오스트리아에서 밝혀진 최근 연구 결과에 따르면 한 잔의 커피는 100mg의 카페인을 뇌에 공급해준다고 한다. 이 정도 양이면 45분 정도의 시간 동안 당신의 뇌는 보다 더 빨리, 명석하게 회의를 주도해나갈 에너지를 얻을 것이다.
당신의 근육 원리 찾기 카페인은 우리의 중추신경계를 자극하기 때문에 심박수와 호흡을 약간 빨라지게 한다. 이것은 어떤 일을 수행하기 전에 미리 당신의 신체를 활성화시켜 몸이 더 빨리 반응할 수 있도록 한다. 카페인은 근육에 직접적으로 영향을 준다. 근육 조직이 수축을 하기 위해서는 칼슘이 일단 근육에 흡수돼야 한다. 카페인은 아데노신이 근육 조직에 흡수되는 것을 막아버림으로써 더 많은 양의 칼슘이 신속하게 분비되도록 하는 것이다. “카페인을 섭취하고 운동하면 카페인을 섭취하지 않은 날에 비해 근육이 좀더 단단해지는 것 같다고 느껴지는 것이 이런 이유 때문입니다”라고 온타리오주 프 대학교 인류건강과 영양학과 테리 그레이엄 교수의 설명이다.
적용하기 그레이엄 교수는 운동하기 30~60분 전에 140~400mg의 카페인을 섭취하는 사람은 운동속도와 지구력 향상에 효과가 있다고 밝혔다. 보다 더 효과적인 운동이 가능한 것이다. 하지만 이 실험에서 실험자들은 이런 결과를 얻기 위해 부가적인 카페인을 더 복용했다고 한다. “커피에 들어 있는 다른 성분들이 당신의 운동 능력을 향상시키려는 카페인의 효과를 저해하는 영향을 끼치기 때문입니다”라고 그레이엄 교수는 설명했다. 시중에 왜 그렇게 많은 스포츠음료가 판매되고 있는지 감이 오는가? 스포츠 음료를 마실 생각이라면 무설탕인 제품을 고르자. 실제로 운동 성과에 영향을 끼치는지 측정하고 싶다면 운동할 때 정신적(운동이 더 잘되는 것 같거나 평소보다 시간이 더 걸리는 것 같은 느낌)인 반응이나 육체적(더 많은 반복횟수를 했다거나 전혀 효과가 없는 것 같은 느낌)인 반응을 확실하게 체크하자.
주의점 가족 중에 심장마비 병력이 있거나 당신이 심장관련 질병을 앓고 있다면 운동하기 전 4시간 동안에는 카페인이 다량 함유된 물질을 섭취하지 말자. 미국 심장학 칼리지에서 2006년에 측정한 연구 결과에 따르면 200mg의 카페인만으로도 운동 중에 심장으로 흘러들어가는 혈액이 39%나 줄어드는 것으로 나타났다. 카페인이 관상동맥을 죄어 좁아지게 하기 때문이다.
당신의 심장 아데노신이란 성분은 혈관이 이완하는 데 도움을 준다. 하지만 카페인이 혈관을 따라가며 한번 흡수되기 시작하면 당신의 동맥은 조여들기 시작해 혈압이 상승하게 된다. 그렇다고 해서 “커피를 마시면 심장마비에 걸릴 위험이 높아진다”고 단정 짓기는 이르다. 사실 습관적으로 카페인을 섭취하지 않는 사람이어도 10mmHg 정도 상승할 수 있다는 연구 결과도 여러 번 보고됐기 때문이다. 미국 하버드 대학교에서는 12만8천 명의 커피 소비습관을 추적해본 결과 하루에 커피를 6잔 이상 마시는 사람이라고 해서 심장마비에 걸릴 확률이 높아진다는 뚜렷한 증거가 나오지 않았다. 더군다나 작년 브루클린 칼리지에서는 하루에 4잔의 카페인 커피를 마신 사람은 커피를 아예 마시지 않는 사람보다 심장마비로 숨질 확률이 53%나 적다는 연구 결과를 발표했다. “심한 고혈압 환자가 아니라면 커피 한잔으로 상승하는 혈압쯤은 걱정할 거리가 못됩니다.” 미국 시카고 대학교 심장학과 매튜 소렌티노 교수의 말이다. “더군다나 커피를 습관적으로 마시는 사람이라면 우리 몸이 카페인에 익숙해져 혈압이 상승하는 폭도 점차 줄어들게 된다”고 그는 설명한다.
특히 커피의 이런 심장병 예방효과는 노인들에게 더욱 크게 작용하는 것으로 나타났다. 뉴욕 대학교 제임스 그린버그 박사는 성인 6천600여 명을 대상으로 9년간 연구한 결과 65세 이상 노인의 경우 커피를 많이 마실수록 심장병으로 인한 사망 위험이 현저히 낮아지는 것으로 나타났다.
당신의 병력을 항상 기억해두자 만약 카페인이 당신의 심장을 빨리 뛰게 한다거나 심장이 더 세게 뛰는 것처럼 느껴진다면 아마도 당신이 유전적으로 카페인 자극에 예민하기 때문일 것이다. “이런 얘기가 심각하게 들릴지 모르겠지만 가슴의 두근거림은 당신이 근래에 심장마비를 겪지 않은 이상 아무런 해가 없습니다.” 심장전기생리학 박사 존 카소티스 박사의 말이다. 그는 사람들에게 커피와 심장마비는 무관하다고 말하면서도 그래도 걱정이라면 의사와 상담을 해서 마실 수 있는 커피의 적정량을 정하라고 조언한다.
산화방지제가 풍부한 커피를 마시자 아직까지는 과학자들도 앞서 말한 이로운 효과를 주는 물질이 카페인인지 아니면 산화방지제인지, 또는 그 둘이 복합적으로 유발하는지는 밝혀내지 못하고 있다. 여기서 우리는 당신이 카페인에 매우 민감한 사람이 아니라면 일반 커피를 마실 것을 권장한다. 카페인을 제거한 커피는 산화방지제의 함량이 15%나 줄어든 것으로 나타났기 때문이다.
1. collection이란? 보통 collection이라 하면 여러개의 원소를 한 묶음으로 묶어줄 수 있는 객체를 의미합니다. 객체를 담는 객체라고 생각하시면 되고, container라고 부르기도 합니다. 꼭 자바에서만 통용되는 의미는 아니죠. 이 collection을 이용하면 데이터를 collection에 담아두기도 하고, collection 담아둔 데이터를 나중에 다시 찾을 수도 있어야 합니다. 자바의 배열이나 java.util.Vector를 사용해보셨다면 collection이 어떤 것인지 대충 짐작하고 계실겁니다. 다시 말해, 우리가 개념적으로 어떤 것들의 묶음을 생각하고 있다면, 프로그래밍 언어에서 제공하는 collection으로 표현하면 되는 것입니다. 자바에서 이미 여러 종류의 collection들을 제공하고 있어 프로그래머에게 상당히 편리합니다. C/C++ 프로그래밍을 하다가 자바를 사용하게 되면서 느끼게 되는 가장 큰 매력중의 하나가 바로 자바에서는 다양한 collection이 제공된다는 점이죠.
* 인터페이스 Collection, List, Set, Map
* 구현 클래스 Set에 속하는 것들: HashSet, TreeSet List에 속하는 것들: ArrayList, LinkedList Map에 속하는 것들: HashMap, TreeMap
2. collection framework란? collection framework란 프로그래밍 언어에서 collection을 제공하는데 필요한 밑바탕에 해당합니다. collection을 표현하기 위한 자료구조와 collection에 대해 사용할 수 있는 연산들을 위한 전반적인 아키텍처를 의미합니다. 자바에서는 collection framework를 구성하는 세가지 요소를 다음과 같이 정리할 수 있습니다.
- interface: 그냥 추상적으로 collection에 대해 생각할 수 있는 연산들만을 정의합니다. 예를 들어, list면 원소 추가하기, 원소 삭제하기, n번째 원소 얻기 등등을 정의해둔 collection의 interface가 고유의 collection마다 정의되어 있기 마련이죠. - implementation: 각 collection을 실제 어떤 자료구조를 이용하여 표현했느냐에 따라, collection의 종류가 달라집니다. - algorithm: 각 collection마다 유용하게 사용할 수 있는 메소드를 의미합니다.
자바 collection은 이러한 collection framework란 견고한 기반위에서 정의되어 있으므로, 각 collection 종류마다 제공되는 method에 일관성이 있어, 한가지 collection을 익혀두면 다른 collection을 사용하기가 매우 쉽습니다.
Frustrated Total Internal Reflection 전반사 효과를 이용한 적외선 감지로 멀티 터치 스크린을 구현하여 그에 따른 컨텐츠를 보여주는 동영상이다. 마이크로 소프트의 Surface를 비롯하여 최근 멀티 터치 스크린을 통한 정말 다양한고 신기하고 마이너리티 리포트를 연상케 하는 장면이 현실로 다가 오고 있다. 기술력도 대단하고 이를 개발하기 위한 개발자의 노력에 박수를 보내고 싶다.
FPGA와 ASIC의 설계방법은 비슷합니다.먼저 언급드린 것처럼 VHDL이나 회로를 ORCAD에서처럼 직접 그리는 것을 일컫는 스키메틱 캡쳐 방식등을 이용해서 디지탈 로직을 구현합니다. 로직 구현 후, 회로가 제대로 되어 있는지 검증하기 위해 시뮬레이션을 합니다. 이 부분 즉, 설계의 앞분야 (Front-End)는 각 과정중 복잡도만 제외하면 ASIC,FPGA 개념은 모두 같다고 볼 수 있습니다. FPGA같은 경우 회로설계의 앞 부분만 끝마치면 보드에 장착된 FPGA상에 바로 회로를 다운로드하여 보드의 동작이 가능합니다. 하지만, ASIC같은 경우 회로설계의 뒷 부분 즉, 웨이퍼상에 셀(게이트)가 놓일 위치를 정해주고, 그 웨이퍼상에서 피지컬로 각 셀들을 메탈을 이용하여 Front-End에서 작성된 회로대로 연결하여 주는 작업을 해주게 됩니다. 바로 여기에서 FPGA와 약간의 차이가 나게되는데, FPGA는 이미 특정 셀들이 FPGA내부에 구성되어 있어서 단순히 선만 연결하여주거나 혹은 끊어주거나 하여서 회로도를 작성하여 주는 반면, ASIC는 셀들이 어느 위치에 놓일지 알 수 없습니다. 즉, FPGA는 시뮬레이션시 시뮬레이션을 위한 타이밍의 예측이 쉽지만, ASIC은 FPGA처럼 쉽지만은 않습니다. 더군다나 ASIC같은 경우 한번 공정에 들어간 웨이퍼는 보통 2개월 정도 걸리며 웨이퍼를 제작하기 위한 마스크 비용역시(장당 몇백씩 합니다.) 무시할 수 없기때문에 시뮬레이션의 중요성이 FPGA보다는 훨씬 크지만, 각 셀들의 딜레이를 예측할 수 있는 정도는 FPGA보다는 떨어집니다. 때문에, 각 상용 소프트웨어는 이러한 타이밍 차이(실제와 시뮬레이션)를 줄이기 위한 특별한 알고리즘을 사용하기도 합니다. 위의 이유때문에 ASIC 설계 소프트웨어가 보통 억 단위를 넘어갑니다. FPGA와 ASIC의 가장 큰 차이점은 Front-End 설계는 같지만, Back-End설계의 있고 없고의 차이라고 할 수 있습니다. 이 외에 ASIC같은 경우 IC가 나오고 나서 그 IC가 제대로 만들어 졌는지 테스트를 위한 과정도 고려를 해야하는데, 이 또한 만만히 볼 과정이 아닙니다. 그래서 로직 디자인이 완전히 끝나고 나서 FPGA는 즉시 보드에 동작 시킬 수 있는 반면, ASIC은 뒷 설계과정이(Back-End) 로직 디자인 못지 않기때문에 또한 공정상 웨이퍼가 숙성하는 과정의 기간때문에 개발 시간이 보통 2개월 반 정도 더 추가됩니다. 또한 Back-End 엔지니어의 몸값이 비싸지는 이유도 위에 있는 이유와 같다고 볼 수 있습니다.(잘못해서 ASIC Back-End과정을 진행하게되면 손해가 몇10억 단위로 날 수 있으며, 실제 제가 회사에 있을 때, 웨이퍼 DB를 공정으로 잘못 보내서 10억 이상가는 손해를 회사에 끼쳤다고 시말서를 쓴 동료도 있습니다). 하지만, 그런데도 ASIC을 하는 이유는 바로 가격때문이라고 할 수 있습니다. FPGA는 이미 수백 ~ 수만개의 셀들을 이미 IC안에 만들어 놓기때문에 쓰지 않는 셀들이 상당히 많이 있을 수 있습니다. 그만큼 웨이퍼 다이(IC바로 전의 상태) 가 커지게되며, 그만큼 생산량이 ASIC에 비해서는 월등히 떨어지게 됩니다. 그래서 일반적으로 FPGA는 Prototype 용으로 많이 쓰이고, ASIC은 양산용으로 많이 쓰이게 됩니다.
Full-Custom은 로우레벨의 함수 기능까지 모두 수작업으로 제작하는 것을 말하며, 현재 DRAM분야나 Analog 분야에서 많이 사용하고 있습니다. 수작업으로 직접 Not, And, Or, Xor,... OPAMP등을 CAD Tool을 이용해서 그려주기때문에 숙련된 엔지니어가 작업할 시 조그마한 사이즈로 많은 함수를 구현할 수 있습니다. 하지만, 그만큼 제작하는 데 들어가는 시간이 좀 걸린다는 단점이 있습니다. 설계를 완료하는데 걸리는 시간이 보통 개월단위입니다. Full-Custom은 Semi-Custom과는 달리 Front-END와 Back-END로 나뉘어 전담하는 엔지니어가 없습니다. 일반적으로 로직 설계부터 웨이퍼 생산을 위한 DB(DataBase)생성 을 첨부터 끝까지 모두 한 엔지니어가 하게됩니다. 각 대학의 VLSI 연구실의 대학원생이 주로하는 작업이 위의 1번 Full-Custom이라고 할 수 있습니다. Semi-Custom은 크게 Stand-Cell과 Gate-Array로 나뉘어지게 되는데, And, Or, Xor 등의 기본적인 셀(게이트라고도 합니다.)은 라이브러리형태로 이미 존재하게됩니다. 이 라이브러리를 이용하여 Front-End엔지니어는 로직 설계를 하게 되며, Back-End 엔지니어는 그 로직 설계한 DataBase를 이용해서 웨이퍼 생산을 위한 DataBase를 생성하게됩니다. Full-Custom보다는 설계 시간이 걸리지 않는 대신에 웨이퍼상의 사이즈는 Full-Custom보다는 크게됩니다. 여기서 웨이퍼상의 사이즈는 곧 생산원가와도 직결되기때문에, 설계시 상당히 고려해야 하는 부분중 한 분야라고 할 수 있습니다. 스탠다드셀과 게이트어레이의 차이점은 웨이퍼에 게이트를 구현하기위한 마스크의 갯수라고 볼 수도 있습니다. 스탠다드셀은 각 게이트들을 웨이퍼에 형상화 하기위해서 마스크가 12장 필요하게되는데, 설계를 할때마다 마스크를 12장 다 제작하게됩니다. 이에 반해서 게이트 어레이는 12장의 마스크중 4장만 제작하면 됩니다. 이에따른 웨이퍼 공간과 제작 시 걸리는 시간등의 장단점이 각각 있게됩니다.(게이트 어레이는 스탵다드 셀과 FPGA의 중간적인 형태라고 보시면 됩니다.)
SoC는 System On Chip의 약자로 원래는 시스템을 구성하고 있는 모든 콤포넌트들을 하나의 IC안에 집적시킨다는 의미로 1990년대 중반(?)부터 주로 대두되기 시작한 단어입니다. 즉, 위의 스탠다드셀이나 게이트 어레이의 라이브러리를 확장한 보다 덩치가 큰 라이브러리를 이용하여 IC를 설계하는 개념입니다. 각 게이트들을 몇개 모아서 TTL중 카운터나 콤파레이터의 작용을 하는 Macro Function을 라이브러리로 구성하고, 이 Macro Function을 몇개 모아서 UART, TIMER, DMA,...등의 Mega Function을 구현하게 됩니다. 이 Mega Function을 더 모아서 IP라고 불릴 수 있는 8051 CPU IP, ARM Core IP, 등을 구성 할 수 있습니다. SoC는 System자체를 한 IC안에 구현하기때문에 워낙 덩치가 커지게 되는데, 이 이유때문에 IP(일종의 라이브러리라고 할 수가 있을 것입니다)라는 개념의 콤포넌트들을 사용하게 됩니다. 또한 System 을 구성할 수 있는 구성 요소는 디지탈적인 요소 이외에도 ADC,DAC등 아날로그 IP도 필요하게 됩니다. 때문에, SoC는 보다 포괄적인 개념이라고 할 수 있습니다. 현재의 SoC는 주로 DRAM이나 SRAM등의 메모리와 디지탈 로직을 한 IC에 구현하는 개념으로 한정시키는 엔지니어도 있지만, 현재의 기술 수준에서 따져본다면 딱 틀린 얘기는 아니라고 할 것입니다. 왜냐하면 SoC를 구현하기 위해서는 디지탈, 아날로그 등이 총 망라되어야 되는데, 아직까지 완벽하게 상용으로 사용하기 위한 SoC를 구현하는 반도체 회사가 없기때문입니다. 하지만, MCU, DRAM(혹은 SRAM), 디지탈 로직등을 한 IC에 집적시키는 정도는 대부분 가능하기 때문에 그 분야를 SoC라고 한다고 해서 틀린 얘기는 아닐 것이기 때문입니다.
ASIC과 SoC의 개념 차이를 정확하게 칼로 물 자르듯이 구분 지어서 생각 할 수는 없을 것 같습니다. 왜냐하면 서로간에 겹치는 분야, 겹치지 않는 분야가 있기 때문이며, 분명한 것은 ASIC의 발전이 있고 나서 SoC의 개념이 나왔다는 것이라고 할 수 있습니다.